STM32串口映射printf——发送中文字符乱码

文章讲述了在使用Notepad++修改代码后,STM32工程加载新代码出现中文乱码的问题。作者检查了波特率、USBMicroLIB设置和keil的编码配置,均未解决问题。最后发现是Notepad++的默认编码为UTF-8,改为ANSI编码保存后,乱码问题得到解决。提醒读者注意代码编辑器的编码设置对工程的影响。
摘要由CSDN通过智能技术生成

简介

        在将之前的工程使用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++修改,导致编码格式放生变化。此处将几个可能出现乱码的地方进行整理,希望能够帮助到遇到同样问题的朋友。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值