设备间通信,怎么实现串口发送的指令和期望接收的指令对接

2019-10-12 14:04发布

stm32f103和一个设备通过串口通信,每发一条指令它就回一条。但是发送的指令怎么跟期望接收的指令进行一一对应呢。我是通过定时器发送指令,队列传送接收到的数据然后再判断定时器的计数来对应的,但是数据一多起来,其中还有嵌套,这个办法就不行了。一个任务获取多次任务就会卡住程序。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
wmaxwell
1楼-- · 2019-10-12 17:42
不要开队列,发一次就等回复,另一个机器要么回复你,要么不回复(超时),这样就可以做到一一对应了
FreeRTOS
2楼-- · 2019-10-12 20:39
如果设备返回的信息有一套明确的协议,例如以回车换行 结尾的,那么最好开队列,否则设备连续发送多条信息过来时你处理不过来的
如果设备返回的信息没有明确的协议,并且长度不固定的,这时用队列处理会复杂些,建议使用串口空闲中断,每接收一条信息就立刻处理不要等待
最后要跟你说的是你的帖子发错版了,我帮你转过去F1版

一周热门 更多>