串口助手输出乱码或无输出问题
问题描述:使用stm32的板子下载好程序之后,想通过串口助手查看调试结果却发现串口没有输出或者输出的是乱码。
情景一:如果你想要使用c标准中的printf函数打印字符到串口助手,那么你需要先重定义fputc函数,这样才可以正常使用printf函数。
/****************************************************** *@brief 重定义fputc函数 *@param ch:返回的字符 * *******************************************************/ int fputc(int ch, FILE *f) { USART_SendData(USART1,ch); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET); return ch; }
情景二:如果你的fputc函数已经重定义了,但是还是输出不了字符,那么有可能是以下问题:
问题1:keil软件中没有配置好,具体配置方法如下:
1、选择输出中文选项
2、勾选Use MicroLIB
问题2:时钟的频率没有修改正确,具体修改步骤如下
1、修改频率
2、修改频率的时候如果文件有没有写入权限,我们需要先把只读权限去掉具体操作如下:
注意一下,修改完频率之后,记得重新把文件的写权限加上,重新把文件的只读属性勾选上即可。
以上是我在实践中遇到的串口助手输出的问题,可能还有其他的情况我没有发现,如果朋友们有其他的问题或者有更好的解决方法,希望留下你们的宝贵意见。
鉴于本人才疏学浅,所以其中不免有遗漏或者错误,恳请各位博友批评指正。