OpenEdv-开源电子网

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

很多MCU的串口外设的发送完标志有发送寄存器空和发送完成两个标志位,这两个都可以用来启动下一次传输,但是有什么区别呢?

[复制链接]

5

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2020-1-14
在线时间
13 小时
发表于 2020-12-17 11:30:45 | 显示全部楼层 |阅读模式
10金钱
发送寄存器空标志、发送完成标志
这两个标志都可以判断都可以判断出可以进行下一次发送了,为啥还要设置这两个?

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

使用道具 举报

0

主题

6

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
金钱
1179
注册时间
2020-12-16
在线时间
132 小时
发表于 2020-12-17 12:39:09 | 显示全部楼层
当发送寄存器为空标志时,仅仅是将发送寄存器中的数据存入了移位寄存器,然后移位寄存器逐位将数据发送出去,当全部位都发送完成后,发送完成标志才会置位。这里有个时间差,和实际波特率有关。
两个标志位对于发起下一次传输来说,效果是一样的。UART内部也得等移位发送完成后才将发送寄存器的数据存入移位寄存器。这个动作是UART自己完成的。
但是对于一些其他场景,就会有区别了。比如低功耗场景,当数据发送完成时需要关闭外设时钟进入低功耗模式。这时就要看发送完成标志是否置位。如果仅仅看发送寄存器空标志,可能会造成关闭外设时移位寄存器还在工作,导致最后一个字节发送失败。
回复

使用道具 举报

12

主题

3387

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8632
金钱
8632
注册时间
2020-5-11
在线时间
4070 小时
发表于 2020-12-17 13:17:07 | 显示全部楼层
楼上说得对,还有485切换收发模式时也要注意。
专治疑难杂症
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4477
金钱
4477
注册时间
2013-4-22
在线时间
336 小时
发表于 2020-12-17 15:47:24 | 显示全部楼层
发送为空和发送完成时间是有间隔的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 18:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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