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

uart的接受不定长字符串的实现

91cadc4ef00cb4d9 2018-10-28 浏览量:1112

 uart的接受不定长字符串的怎么实现

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 如果是STM32的话,给你一个关键词:空闲中断

    简单来说,当串口收到过数据之后 ,经过一个短暂的时间没有收到新的内容,就会触发空闲中断(当然,你要配置开启这个中断)


    如果是51单片机,用个最笨的方法:

    开串口接收中断和一个定时器中断(假设定为20ms)

    每次触发接收中断,把收到的数据放入数组,给定时器计数器重新置位

    一旦定时器中断触发,就说明20mS内没有新数据产生,即可认为一批数据收全了。

    • 发布于 2018-10-28
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:16

  • 你可以参考果云A6的代码,果云科技官网有,望采纳
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 一般是在收发数据协议中,定义用来描述数据长度的字节。这样接收方就可以根据此字节,获得应该接受的数据个数。
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

  • uart是一个字符一个字符接收的,一般会定义(约定)一个缓冲极限,具体怎么定义是通信双方预定义的。

    在这之上会有相应的字符串结束标志等

    这样就可以发送、接收不定长的啦。

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 还是靠通讯协议吧,这个复杂点,却是很靠谱。

    像机智云,涂鸦云,都是靠协议完成的。

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 一般是使用结束字符,在配置串口时直接说明结束字符是什么,这样就可以接受不定长字符串了。
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 可以使用串口空闲中断啊

    也可以每收一定的数据进行判断

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 通过超时检测判断一帧,或者有结束符判断,比如换行符,字符长度自己定义一个会收到的最长数据就可以了
    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以通过串口空闲中断+DMA接收的方式实现,当空闲中断开启的时候每发完一帧不定长数据就会产生一次中断。

    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 另外,可以参考资料:串口接收不定长数据的几种方式 ,STM32串口接收不定长数据原理与源程序,STM32单片机的接收不定长度数据方法改进
    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 自定协议,判断包头包尾及校验,现在串口通讯基本都这个套路。
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以自定义通讯协议,主要就是规定好数据帧头、数据帧尾。检测到帧尾,就结束本次数据包传输。
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 自定义协议,规定头尾就可以了,比如以\n作为结束
    • 发布于2018-11-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以考虑用串口DMA+空闲中断来实现,这个空闲中断可以在检测到一段时间的总线空闲后使能一个中断
    • 发布于2018-11-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以用DMA+串口空闲中断来处理,这样判断你的空闲中断就可以做到
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 用串口的空闲中断可以做到,这样可以进行不定长的判断
    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

uart的接受不定长字符串的实现