专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
今天看啥  ›  专栏  ›  嵌入式微处理器

串口发送函数,到底要怎么写?

嵌入式微处理器  · 公众号  ·  · 2024-10-09 12:00

文章预览

上一篇文章是关于 串口接收Overrun 的问题,今天接着说串口,这次讨论的是串口发送函数写法的问题。串口发送可以通过轮询、中断或者DMA方式,这里我们讨论轮询发送方式。 串口发送有两个关键的标志位:Transmit Data Register Empty Flag和Transmit Complete Flag,各家MCU寄存器名字可能略有不同,但是其实都是一个含义。 比如ST MCU叫TXE和TC: NXP MCU叫TDRE和TC: 复旦微MCU叫TXBE和TXSE: TXE/TDRE/TXBE为1表示发送数据寄存器为空,数据已经发送到了移位寄存器里,这时就可以发送数据寄存器里写数据了。 TC/TXSE为1表示发送数据寄存器为空,移位寄存器数据也为空,整个发送过程都完成了。 网络上有很多关于这个话题的讨论,其中有一篇文章还专门针对以下5种串口发送函数的写法做了分析和好坏讨论。 写法1: 先判断TXE,再写数据 写法2: 先判断TC,再写数据 写法3: ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览