专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
STM32 串口空闲中断的问题
2019-12-18 18:47
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
2678
23
24
目前在做一款无线模块通信的设备,需要使用AT指令进行模块的初始化和数据的传输,在网上看到有用串口空闲中断来判断一帧数据,然后对这一帧数据进行处理;但是我有一个疑问,如果设置了模块有一个周期性的数据需要发送,然后我这边也会有AT指令发出,有没有可能数据会同时在一帧里面让STM32接收到数据,如果这样,那我就会漏掉一组数据,不知道有没有人测试过??或者有没有什么好的方式!
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
venus5712
1楼-- · 2019-12-20 07:48
发送从 TX 线走 , 接收 从RX 线走.
全双工 同时收发.
加载中...
fuu
2楼-- · 2019-12-20 11:53
楼主的意思是模块发了连续的两包数据,stm当成一包数据接收了,软件只处理一包数据,所有说会漏掉一包没处理。
解决方法是每收到一包数据,搜索 的位置是否在包尾,如果是表示只收到一包,如果不是则表示收到了两包以上,以 符号为界手动分包再处理。(一般AT指令以 做结尾标识)
加载中...
nzk123
3楼-- · 2019-12-20 14:21
明白楼主意思,就是接收的数据有粘包,两包回复合在了一起了。首先,用空闲中断来判断一包结束这种方法并不可靠,用过很多设备,回复过来的数据根本就没法保证完全不断,你想想,设备总不可能只有1个发送中断吧,如果有多个中断,而且发送中断优先级不是最高,就有可能一包数据没有发完就产生了空闲。其次,最好的方法就是接收过来的数据按照空闲判断先放在接收缓存,然后再从接收缓存中一个字节一个字节取出解析,解析过程中必然会有帧头帧尾,这样就能保证一包数据不会分成两包而不被识别,同样也能解决两包数据粘包而不能被分开的情况。
加载中...
zchong
4楼-- · 2019-12-20 20:07
精彩回答 2 元偷偷看……
加载中...
SC-Electronic
5楼-- · 2019-12-20 20:43
串口一般不做总线用呀,兄弟。你想2组数据在一条串口线上传输,你肯定要带总线冲突的检测,不然数据肯定乱七八糟的。
加载中...
ywlzh
6楼-- · 2019-12-20 23:48
讲道理 模块有两组数据要发给串口,中间一般不会连续发,帧结束标志,隔一段时间再发之后的数据,队列模式。
如果连续发了,那必须要在数据里能判断出哪些数据是一包,哪些数据是另一包。
这个时候 楼主就直接判断吧,也别用空闲中断了。
加载中...
上一页
1
2
3
4
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
全双工 同时收发.
解决方法是每收到一包数据,搜索 的位置是否在包尾,如果是表示只收到一包,如果不是则表示收到了两包以上,以 符号为界手动分包再处理。(一般AT指令以 做结尾标识)
如果连续发了,那必须要在数据里能判断出哪些数据是一包,哪些数据是另一包。
这个时候 楼主就直接判断吧,也别用空闲中断了。
一周热门 更多>