当前位置:   article > 正文

openmv串口数据 串口助手_STM32 串口接收不定长数据 STM32 USART空闲检测中断

openmv串口中断

f606e370d52b6442207e513ec7bbb6bb.png

编者注:

单片机串口接收不定长数据时,必须面对的一个问题为:怎么判断这一包数据接收完成了呢?常见的方法主要有以下两种:

1.在接收数据时启动一个定时器,在指定时间间隔内没有接收到新数据,认为数据接收完成;2.在数据中加入帧头、帧尾,通过在程序中判断是否接收到帧尾来确定数据接收完毕。这两种方法的缺点为,需要主程序来判断和处理,对主程序造成不小压力。

STM32单片机空闲检测中断可以很好的解决这个问题。他的工作原理为:

当STM32的串口接收完一包数据后,会产生一个空闲中断。这个中断在串口其他任何状态都不产生,只会在接收完一包数据后才会产生,一包数据可以是1个字节或者多个字节。因此,我们可以在这个空闲中断函数中,设置一个接收完成标志位。那么,我们只需要在主程序中检测这个标志位就知道数据是否接收完成了。具体应该怎么操作呢?其他不表,直接上代码:

fb694d3760c71c5f0fd5e2fe19390382.png

上述代码几乎是STM32串口的常规配置,无需赘

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/474105
推荐阅读
相关标签
  

闽ICP备14008679号