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

2020-01-20 19:15发布

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

是有一个数据缓存,只是处理的时候不知道放哪里。
xtrig
3楼-- · 2020-01-21 04:58
 精彩回答 2  元偷偷看……
nome
4楼-- · 2020-01-21 08:49
感觉你这个需要上 具有优先级抢占式的操作系统了。。。
luguobing
5楼-- · 2020-01-21 11:03
我还是比较关心楼主的头像      求番号   
sbk100
6楼-- · 2020-01-21 14:48
首先你的串口接收数据不能接一个等一个 阻塞操作不行 发送也是 用中断加环形队列 在主程序里用状态机处理数据

一周热门 更多>