单片机串口通信数据处理应该放在哪里

2020-01-20 19:15发布

最近做到一个关于串口的问题,程序比较大,资源比较紧,做数据处理时串口接收到的数据不知道应该放在哪里了。
位置1、放在主程序循环,由定时器在数据发送完成后开始计时,到返回的数据接收完成结束,用来判定接收超时。
现象,当主循环做的事比较多时,其他的程序耗时比较多,运行到数据处理的时候可能总时间已超出超时标准。
位置2、放在中断里面
放在这里去做比位置1更不合理,因而舍弃。
不知道放在哪里了,难道只能移植通信协议?如modbus。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
小柯师傅
1楼-- · 2020-01-22 10:01
 精彩回答 2  元偷偷看……
blavy
2楼-- · 2020-01-22 11:26
小柯师傅 发表于 2015-1-6 22:15
串口桢,异步处理,基本功啊:-)

不懂,能不能讲一下
babysnail
3楼-- · 2020-01-22 16:09
fifo+时间片轮转,妥妥的!        
小柯师傅
4楼-- · 2020-01-22 17:37
babysnail 发表于 2015-1-7 14:43
fifo+时间片轮转,妥妥的!


主要就是要用队列异步
n0831
5楼-- · 2020-01-22 18:30
超时,用单字节超时,中断只做简单的帧结构判断,接收够一帧后交给主程序处理。
mangoes
6楼-- · 2020-01-22 19:01
 精彩回答 2  元偷偷看……

一周热门 更多>