您的位置 首页 元件

stm32 USART_IT_IDLE

请注意IDLE中断是只检测到空闲帧时产生的中断。而空闲帧的定义是:被视为完全由1"组成的一个完整的数据帧,后面跟着包含?数据的下一帧的开…

请注意IDLE中止是只检测到闲暇帧时产生的中止。

而闲暇帧的界说是:被视为完全由“1"组成的一个完好的数据帧,后边跟着包括?数据的下一帧的开端位。

关键是后边半句话,要求有下一帧的开端位,而你的状况恰巧没有下一帧的开端位(传输现已完毕),当然不会有中止了。

举例:
假如接连发送一串字符串“123”会产生闲暇中止吗?
不会,由于没有下一帧的开端位。
假如进了闲暇中止不手动清零,会一向进入闲暇中止。

所以用这个IDLEIE来完毕DMA方法的接纳,是适宜的。仅有一个不适宜的当地是:假如你发送一个字符串后,将DMA设置好接纳传输方法,然后:对方没呼应,你一个字符也收不到,这时候,IDLEIE是不会来的,有必要有个总超时检测来完毕DMA接纳方法:由于IDLEIE中止有必要要有字符串收到,然后有一个字符的时刻没收下一个字符的开始位,才会产生。

别的,1个字符距离的闲暇就完毕接纳:是默许任何对方发送字节的距离不大于1个字符距离,是不符合Modbus-RTU协议的,RTU协议是3.5个字符时刻,假如收到”a”后,停了2个字符时刻,又收到”b”,Modbus-RTU仍是以为ab是同一帧的接连字符。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/252103.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部