还是stm32 usart查询方式发送数据的问题 上次发帖没有解决就没有结贴,这次程序简化一下大家再看看
void Uart1_PutChar(u8 ch)
{
USART_SendData(USART1, ch);
while( USART_GetFlagStatus( USART1, USART_FLAG_TXE)==RESET);
}
int main()
{
RCC_cfg();
GPIO_cfg();
USART_cfg();
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
//while(1){
Uart1_PutChar(0x77);
Uart1_PutChar(0x97);
// }
while(1);
}
就是这样一个程序 ,电脑串口收不到数据。很奇怪的是如果把注释去掉即加上while(1)无限循环就能够循环发送数据了
[解决办法]
你确定你是先开的电脑上的串口调试助手的?
[解决办法]
如果是在
RCC_cfg();
后面加一个大大的延时
[解决办法]
你在USART_cfg()里面加上这句话试试"USART_ClearFlag(USART2,USART_FLAG_TC); //防止第一个字节发不出去"。