- 博客(3)
- 收藏
- 关注
原创 “USART_FLAG_TXE“ & “USART_FLAG_TC“
USART_FLAG_TXE:表示数据缓冲区是否为空,为空时置1,表示可以写数据到数据缓冲区,有可能数据没有发送完。USART_FLAG_TC:表示数据缓冲区的数据发送是否完成。如果最后一次发送到数据缓冲区的数据完成了从移位寄存器到。信号线TX时,才置1,表示数据发送完成,也就是说,这个标志位真正表示数据发送完成。清除TC需要:1.读SR寄存器 & 写DR寄存器;或者 2.直接给TC赋值0;
2023-11-08 11:13:21 960 1
原创 STM32串口学习
那么当我们复位之后通过USART_SendData函数向USART_DR寄存器写入第一个字节,然后通过while查询TC标志的时候,因为TC初始值是‘1’,所以直接就跳出了while,哪怕此时串口并没有开始发送!第一字节就是这样被跳过去了。打印前先执行USART_ClearFlag(USART1,USART_FLAG_TC);:调用USART_SendData函数之前,先将‘TC’标志位清‘0’就OK。先初始化串口配置再初始化IO, 会出现第一个字符丢失或者乱码。
2023-10-26 09:35:28 53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人