STM32串口发送的标志位TC和TXE的区别,到底用哪一个

2019-12-29 18:27发布

STM32串口发送的bug也是经历之后才发现的。

之前我的做法都是先清除TC位才开始发送。

今天看手册的时候,注意到手册里面这样描述的:

无标题.jpg (164.41 KB, 下载次数: 0) 下载附件 2015-1-5 13:24 上传

TC是多缓冲通信才使用,TXE是单缓冲使用。

我不明白什么是多什么是单,串口发送就一个字节一个字节往移位寄存器送嘛。

求指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
happyliu
2019-12-29 22:39
RS485通讯时,先置发送状态,再启动发送,在TXE中断装载后续数据,当数据都发送完成后使能TC中断,在TC中断时置接收状态,完成一次数据发送过程,一个是发送数据寄存器空中断,是为了加快发送速度的,可以做到字节间无间隔发送。另一个是移位寄存器,是数据真实移位发送到传输线上了。

一周热门 更多>