//重定义fputc函数
int fputc(int ch, FILE *f)
{
while((USART3->SR&0X40)==0);//循环发送,直到发送完毕
USART3->DR = (u8) ch;
return ch;
}
MCU从STM32更换为GD后串口打印失效且卡死,在KEIL的DEBUG模式下发现卡死在while语句上。
将上方代码更换为
//重定义fputc函数
int fputc(int ch, FILE *f)
{
USART3->DR = (u8) ch;
while((USART3->SR&0X40)==0);//循环发送,直到发送完毕
return ch;
}
可以解决
文章讨论了在从STM32迁移到GDMCU后,串口打印功能失效且程序卡死的问题。通过修改fputc函数,移除while循环检查发送完毕状态,解决了这一问题。DEBUG模式下定位到卡死点是关键线索。


1597

被折叠的 条评论
为什么被折叠?



