在使用STM32L151开发板程序移植的时候,用USART采用printf输出信息至电脑上,发现显示乱码,网上查找资料,各种说法都有,有说文件编码不正确,有说波特率设置不正确,还有说单片机STM32晶振频率设置不对。
各种尝试解决,确实发现频率设置确实有错误,首先进行了修改。修改位置如下:
在stm32l1xx_hal_conf.h文件对应位置的代码是:
#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
原来的值是24000000,修改为8000000后,然后再编译下载,发现英文字符和数字显示正确了,可是,中文还是乱码,是怎么回事呢?
接下来又继续查找原因,再次用记事本打开文件查看,发现文件编码是UTF-8,于是将文件按编码为ANSI的