串口发送数据时要检测发送完成标志TC,没有while((USART1->SR&0X40)==0); 会造成DR的溢出,但我看到的大部分代码都只是检测TC是否置1,没有TC的清零动作是为什么,不清零不会造成什么影响吗?
USART_SendData(USART1,0x1A);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0x1A);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0x1A);
while((USART1->SR&0X40)==0);
USART_SendData(USART1,0x1A);
while((USART1->SR&0X40)==0);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
哦 ,谢啦~开始没有认真看这句话 由软件序列清除该位(先读USART_SR,然后写入USART_DR)。
一周热门 更多>