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

串口数据成帧

yuzhenhu 2019-01-28 浏览量:933
如何巧妙的把串口发来的数据,区分好帧。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 有两个方式
    1、使用串口的IDLE中断,在CubeMX软件生成的代买有这方面的接口。
        11.jpg
    2、自己写程序,详情你可以看MODBUS的断帧方式。
       大体是这样的,按照3.5T的时间间隔进行断帧,即按照当前波特率传输3.5个byte的时间进行判断。
       建议你详细的查看MODBUS的协议规范文档

       12.jpg

    • 发布于 2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:13
  • 比较简单的方式是通过判断串口数据传输的时间间隔,比如如果串口接收数据超过一定时间(例如5ms),没有接收到新的数据,可以判定串口数据的一帧结束了。当有新的数据到来,可以认为新的帧开始了。具体时间间隔长度,可以根据串口通讯双方具体协商。
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 这个应该按照收发双方使用的协议来
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用串口中断 里面有个串口空闲中断 这个可以判断串口是不是发送完毕
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以自己制定一个简单的协议,需要通信的双方都准守这个协议才可以
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 一个是用环形队列接收串口数据,另一个是用空闲中断的方式实现。
    • 发布于2019-01-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 自己用程序实现一个环形队列,用环形队列来进行处理
    • 发布于2019-01-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是ascii可以通过回车换行判断

    如果是16禁止可以利用超时间判断,比如485通讯

    • 发布于2019-02-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口采集,有多少采集多少,然后连接字符串,然后模式匹配,匹配成功就是一帧,未匹配成功的通过移位寄存器和下一次采集的数据连接字符串,然后循环即可。
    • 发布于2019-02-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 用串口空闲中断,可以标记一帧数据完结
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用串口空闲中断,或是定时器定时区分帧
    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 接收数据采用 OnComm 事件驱动方式。 方法1: 触发条件设置为接收到 3 个字符。
    • 发布于2019-02-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

串口数据成帧