解决STM32串口映射printf发送中文字符乱码问题

简介

        在将之前的工程使用Notepad++修改代码后,加载到现有工程中,使用串口打印输出测试串口功能,发现输出的中文字符全为乱码。对照keil设置,确保与之前工程中设置一样,莫名的就是不能输出中文字符。

解决过程

        此处串口已输出为乱码,说明移植过来的fputs代码没问题(一直在用),可以输出。下面指出可能出现乱码的几处。

        首先,检查的就是波特率,确认代码中的波特率与串口助手中的一致。

         然后,检测keil设置Usb MicroLIB确认勾选。

         再检测keil编译器的编码设置,是否为Chinese GB2312,打开方式Edit->Configration。

        以上配置都没问题,代码编写也没问题,串口输出就是乱码!

最终参考:01_STM32串口printf中文乱码解决方法_stm32printf输出文字为乱码_Tree-gg的博客-CSDN博客

         我这里使用Notepad++直接打开编辑,打开编码发现我的Notepad++默认编码为UTF-8。将编码重新改ANSI编码保存,在次下载问题解决。

 总结:

        以前也遇到过不能输出中文,或者输出中文乱码,按照前面三个点去查找修改也就解决问题了。但是之前是直接将代码复制到keil工程下修改,而此次修改代码是直接用Notepad++修改,导致编码格式放生变化。此处将几个可能出现乱码的地方进行整理,希望能够帮助到遇到同样问题的朋友。

物联沃分享整理
物联沃-IOTWORD物联网 » 解决STM32串口映射printf发送中文字符乱码问题

发表评论