串口数据接收过快时,检查包头校验位的代码就会报错,发慢一地就不会

2019-07-21 00:39发布

可能两条数据间隔太短,串口一次把多条当一条处理了,轻问各位大佬有什么办法解决 检验的 检验的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
g753388438
1楼-- · 2019-07-21 01:36
试着用一下空闲中断+DMA接收,如果数据接收很快,把每次接收的数据都先做缓存再处理。数据处理不要放在中断
IoTCatcher
2楼-- · 2019-07-21 06:24
本帖最后由 IoTCatcher 于 2019-5-28 08:45 编辑

buff[512]这个数组, 升级成支持FIFO功能.然后每次app处理就在fifo里面取一位, 校验是不是头, 在开始取后面的数据.
余怡帆℡
3楼-- · 2019-07-21 07:32
IoTCatcher 发表于 2019-5-28 08:40
buff[512]这个数组, 升级成支持FIFO功能.然后每次app处理就在fifo里面取一位, 校验是不是头, 在开始取后面 ...

请问这要怎么实现啊
余怡帆℡
4楼-- · 2019-07-21 08:01
 精彩回答 2  元偷偷看……
1599064432
5楼-- · 2019-07-21 13:23
 精彩回答 2  元偷偷看……
nashui_sx
6楼-- · 2019-07-21 17:00
余怡帆℡ 发表于 2019-5-28 08:52
大概500ms一次没问题,100ms就有问题

看你好像是中断一股脑接收,一次读取全部512处理,肯定有问题呀  既然有包头,读取两个包头之间的处理  要么就用空闲中断

一周热门 更多>