OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2940|回复: 2

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

[复制链接]

0

主题

0

帖子

0

精华

新手入门

积分
1
金钱
1
注册时间
2019-5-28
在线时间
0 小时
发表于 2017-3-8 10:49:59 | 显示全部楼层 |阅读模式
5金钱
stm32f103和一个设备通过串口通信,每发一条指令它就回一条。但是发送的指令怎么跟期望接收的指令进行一一对应呢。我是通过定时器发送指令,队列传送接收到的数据然后再判断定时器的计数来对应的,但是数据一多起来,其中还有嵌套,这个办法就不行了。一个任务获取多次任务就会卡住程序。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2013-12-24
在线时间
28 小时
发表于 2017-3-8 14:23:03 | 显示全部楼层
不要开队列,发一次就等回复,另一个机器要么回复你,要么不回复(超时),这样就可以做到一一对应了
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12556
金钱
12556
注册时间
2015-11-5
在线时间
2148 小时
发表于 2017-3-9 12:47:36 | 显示全部楼层
如果设备返回的信息有一套明确的协议,例如以回车换行\r\n结尾的,那么最好开队列,否则设备连续发送多条信息过来时你处理不过来的
如果设备返回的信息没有明确的协议,并且长度不固定的,这时用队列处理会复杂些,建议使用串口空闲中断,每接收一条信息就立刻处理不要等待
最后要跟你说的是你的帖子发错版了,我帮你转过去F1版
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 11:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表