• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

串口通信中STM32如何判断已经接受完pc发送的所有字符?

7d91b2c029b51b24 2019-11-26 浏览量:1395
串口通信中STM32如何判断已经接受完pc发送的所有字符?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:6
  • 这个需要借助高层次的通信协议来完成。

    比如你可以定义自己的通信协议,先发送需要传递的字符数,再开始正式传数据,这样就可以检测是否接收完毕。

  • 串口本质上是无边界的数据流来的,不过可以通过人为给它加个超时判断来确定一帧数据是否收完,就是隔了一段时间之后没有收到数据就认为结束,这个时间可以定为接收2个字节的时间

  • 常用的判断方法有两种,1通过结束符判断,比如回车换行符号,但是通常只能传输字符这样使用,2通过超时检测,因为一帧数据发送是连续的,如果中间间隔超过一段时间就判断接收完毕,这个在485通讯上会用到

  • 定长的协议就判断接受长度,不定长可以使用串口空闲中断来判断一帧数据

  • 一种,通过协议来规定,规定一帧数据的帧头与帧尾,有帧尾了就是数据完了

    二处,根据数据之间的时间差,设定一个超时时间,到时间没有收到,就是数据完了

  • 可以使用串口空闲中断啊,要串口空闲了,就是所有的字符都收发完成了

相关问题

问题达人换一批

串口通信中STM32如何判断已经接受完pc发送的所有字符?