zoukankan      html  css  js  c++  java
  • STM32程序中使用printf打印中文字符乱码

    STM32程序printf打印中文字符到串口出现乱码解决方法


    作者 : 李剀
    出处 :

    https://blog.csdn.net/Kevin_8_Lee/

    或者

    https://www.cnblogs.com/kevin-nancy/

    欢迎转载,但也请保留上面这段声明。 谢谢! (以上两个链接均是我个人的博客,只是在不同的平台上面)


    前言:

    相信同我一样,有一部分同学在写单片机程序的时候喜欢用printf打印相关信息到串口,然后在串口调试助手看数据变化。

    但是我之前在使用printf去打印中文字符的时候,出现了乱码,这种问题以前也碰到过,只是没去深究为什么,往往都是重新建工程,写代码。 但是时隔很久,又再次碰到这个问题,就想好好把这个问题修改完,


    我是使用的IAR平台,使用的keil的小伙伴也可以用这个方法解决,都是一样的。

    1、首先看一下错误。串口打印中文,串口助手出现乱码。经检查不是波特率的问题

    在这里插入图片描述

    因为每次用CubeMX配置完之后生成代码,IAR都是以默认编码UTF-8编码的,所以导致了中文乱码,如果设置成系统设置,也会乱码,错误设置如下(同样,keil也有可能是这样的情况跟,可以尝试用类似的方法解决)

    在这里插入图片描述

    只要改成GB2312中文编码即可,但是这里改正之后编译下载,并不行,因为还是utf-8,

    可以看到右下角还是utf-8

    需要重启一下IAR软件

    如果重启不可以,就用记事本或者你们个人使用的查看代码的软件打开src文件夹里面的main.c 然后另存为GB2312编码格式的

    我用的是VScode,直接另存就可以了,之哟啊保存为GB2312或者GBK编码格式就可以,然后打开IAR或者keil工程
    注: 其他编辑器例如sublime,记事本,notepad++,sourceinsight等等,都可以做的
    在这里插入图片描述
    这里提示的是中文编码就可以了

    关于如何使用printf,可以参考我的另一篇博客—>>> 关于重定向printf出错 Error[Pe020]: identifier “FILE” is undefined 解决方案,里面有重定向printf函数的代码,有什么不懂得可以留言评论,能力有限,如果写的不足的也麻烦各位指出,可以探讨一下

    只有心中怀揣着火热的梦想时,人生才是最美丽的 加油吧!

  • 相关阅读:
    喜大普奔,微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库
    maven jdbc 驱动安装
    SpringIoC和SpringMVC的快速入门
    再见 Spring Boot 1.X ,Spring Boot 2.X 走向舞台中心
    LRU设计
    二叉搜索树转换成双向链表
    快速排序
    二叉搜索树的先序中序后序非递归遍历代码
    EM算法
    模型调优
  • 原文地址:https://www.cnblogs.com/kevin-nancy/p/12569386.html
Copyright © 2011-2022 走看看