本渣刚开始学STM32,用的是刘凯老师的视频。在学到UARST时遇到了一个小问题:
下面的代码是在USART初始化完成后的,期望的执行结果是USART1发送ABCDEFGHIJ,调试发现少了个B。而如果把USART_FLAG_TC换成USART_FLAG_TXE,得到的结果就是正确的。另外,将下面代码中的延时利用上时,结果也是正确的。。。隐约得感觉到是与时间有关,但还是不明确问题所在,视频里的刘凯老师也没发现这个BUG(看到他在调试结果显示ACDEFGHI时说到:“我们成功了”)。。。请教各位前辈了!
data = 'A';
for(i = 0;i < 10;i++)
{
USART_SendData(USART1, data);
data++;
//Delay_MS(1);
while(USART_GetFlagStatus(USART1, USART_FLEAG_TC) == RESET);
} |