W806 接收不定长度的 UART 数据, 出现一包数据分为两包接收, 如何做到一包数据可以一次接收的. 如果采用串口空闲中断进行判断, 如何使用方法的, 有例程吗
查看更多
不影响使用啊, 数据流本身不会丢, 利用自定义的数据帧格式, 一般都有长度信息, 判断没接收完成就等下一次接收完成再解析. 没有串口空闲中断, 只有一个简单的接收超时中断 UART_INTS_RTO, 也可以用这个来判断, 前提是发送方不会间断, 如果被置位了, 就调用接收完成中断回调.
一般数据收发都是流式传输, 正确的方法是 uart 接受到 ringbuffer, 然后再去处理, wm_iot_sdk 已经帮你做好 ringbuffer, 你只需要在每次中断回调里挨个儿解析 frame 就好了, 所以你得写好正确的 parser
发布 问题
分享 好友
手机 浏览
回到 顶部