在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: lzhj21

[求助] 关于UART接收端如何开始接收的疑问

[复制链接]
 楼主| 发表于 2023-8-29 09:35:56 | 显示全部楼层


maimu217 发表于 2023-8-28 19:39
是呀,从硬件上来说无法避免,只能软件检测检验位,停止位,或者加CRC校验之类的,让发送端重新发。
...


好吧
发表于 2023-9-8 18:42:41 | 显示全部楼层
楼主提的这个问题硬件范畴内是很难有结果的,这是很多不带反馈的对GPIO是属于强驱动的通信协议都有的问题,比如UART和SPI。这里是UART,那就从UART展开,其实UART关于启动时候能出现的问题还是不少的,楼主的问题算是一个,我这里列举另外一个

1. UART TX端先启动,UART RX端后启动,那么会导致TX端已经占用总线在发送数据,而从机还没有反应过来,因为不带反馈,TX端是不知道RX端是怎么样的,也就会导致楼主提的问题的情况。
2. UART RX端先启动,UART TX端后启动,因为TX端默认把无效状态1是发送给RX端,如果RX先启动,那么RX端会在TX端启动之前,收到不一定是无效状态的数据(比如长时间的0),会导致RX端误启动的情况,从而进行移位然后把数据放入FIFO中,当然也会导致RX端会产生一些不可避免的错误。

关于解决方式,根据我的经验,实际的应用基本都会带反馈,不会让UART这么肆无忌惮地出错,反馈就是TX端发送给RX端时,需要得到RX端的回复,这样子可以很大程度的避免这一类型的问题。另外ST的芯片中的UART,有一个功能是IDLE帧,但是也不能完全杜绝,实际上在启动阶段,在一个比较完善的应用系统里,都会去等系统稳定。

希望解答对你有所帮助
 楼主| 发表于 2023-9-10 11:36:39 | 显示全部楼层


烟花一时 发表于 2023-9-8 18:42
楼主提的这个问题硬件范畴内是很难有结果的,这是很多不带反馈的对GPIO是属于强驱动的通信协议都有的问题, ...


受教了,感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 12:48 , Processed in 0.014147 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表