STM32CubeMX、MDK(Keil MDK)、git、vscode等工具中统一编码设置(UTF-8),确保中文支持,避免乱码问题

STM32CubeMX、MDK(Keil MDK)、git、vscode等工具中统一编码设置(UTF-8),确保中文支持,避免乱码问题


STM32CubeMX、MDK(Keil MDK)、git、vscode等工具中统一编码设置(UTF-8),确保中文支持,避免乱码问题

核心需求:我们希望在这些工具中统一编码设置,确保中文支持,避免乱码问题。这通常涉及到设置文件编码为UTF-8,以及配置编辑器、编译器等。

为了在STM32开发环境中统一编码并支持中文,需要分别配置STM32CubeMX、Keil MDK、Source Insight和Git。以下是各工具的详细设置方法:

一、STM32CubeMX 编码设置

核心目标:强制生成UTF-8编码的源代码文件,避免中文注释乱码。

配置步骤:

  1. 找到STM32CubeMX安装目录下的STM32CubeMX.l4j.ini文件(通常位于 C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX)。
  2. 在文件末尾的部分添加以下参数
-Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN 
  1. 保存文件并重启STM32CubeMX。
  2. 验证:生成工程后,用文本编辑器(如Notepad++)打开 main.c,确认编码为UTF-8。
在这里插入图片描述


在这里插入图片描述

二、Keil MDK 编码设置

核心目标:确保编辑器正确显示和保存UTF-8编码的中文。

配置步骤:

  1. 打开Keil MDK,进入 Edit→ Configuration→ Editor选项卡。
  2. 在 Encoding下拉菜单中选择:
  • 推荐:UTF-8
  • 或 Chinese GB2312(Simplified)(纯中文环境)
  1. 勾选 Use Unicode Byte Order Mark(自动添加BOM头)。
  2. 字体设置(确保中文显示正常)
  • 点击 Font…按钮,选择支持中文的字体(如 Microsoft YaHei、SimSun)。
  • 字符集选择 CHINESE_CHARSET。

5. 系统区域设置(Windows,慎重处理,建议不要修改):

  • 打开“控制面板” → “区域” → “管理” → “更改系统区域设置”。
  • 选择“中文(简体,中国)”,取消勾选“Beta版:使用Unicode UTF-8提供全球语言支持”。
  • 重启电脑生效。

**注意:**对于已有乱码文件,可使用 File→ Open With Encoding…选择正确编码重新加载。

三、Git 编码设置

核心目标:确保Git命令行和日志正确显示中文文件名和内容。

配置步骤(在Git Bash中执行):

  1. 设置全局编码参数:
git config --global core.quotepath false# 直接显示中文文件名git config --global i18n.commitEncoding utf-8 # 提交信息编码git config --global i18n.logOutputEncoding utf-8 # 日志输出编码git config --global gui.encoding utf-8 # 图形界面编码
  1. 终端编码设置:
  • 右键Git Bash窗口标题栏,选择 Options→ Text。
  • 将 Character set设置为 UTF-8,保存并重启终端。
  1. 解决 git log乱码:
exportLESSCHARSET=utf-8 # 确保分页器支持UTF-8
  1. Windows换行符设置(推荐):
git config --global core.autocrlf true# 提交时CRLF转LF,检出时LF转CRLF

四、VS Code设置UTF-8编码

五、统一工作流建议

源头控制:在STM32CubeMX中强制生成UTF-8编码的源文件。

IDE统一:Keil MDK和VS Code均设置为UTF-8编码。

版本控制:Git配置为全程UTF-8,避免文件名和日志乱码。

团队协作:将上述配置写入团队文档,并使用 .gitattributes文件统一换行符和编码:

* text=auto *.c text charset=utf-8 *.h text charset=utf-8 

按照以上步骤配置后,四个工具将统一使用UTF-8编码,彻底解决中文乱码问题,并确保团队协作的一致性。

MDK编码格式为UTF-8,stm32的printf中文输出到串口调试软件,中文显示乱码

原因分析:
MDK编码为UTF-8,所以源代码中的中文字符串是UTF-8编码。当程序通过printf输出到串口时,发送的是UTF-8编码的字节流。串口调试软件如果以错误的编码(比如GB2312)显示,就会看到乱码。因此,我们需要将串口调试软件的显示编码设置为UTF-8。

sscom5.13.1.exe 不支持编码设置,默认系统ANSI编码(中文编码为GBK),所以无法修改。

以下以常见的串口调试软件为例,说明如何设置:

SecureCRT:

  • 打开会话选项(Session Options)。
  • 在终端(Terminal)设置中,找到外观(Appearance)下的字符编码(Character encoding)。
  • 将编码设置为“UTF-8”。

Xshell:

  • 打开会话属性(Session Properties)。
  • 在终端(Terminal)设置中,找到编码(Encoding)。
  • 选择“UTF-8”。

Putty:

  • 在连接设置中,找到窗口(Window)下的转换(Translation)。
  • 在“接收数据的字符集”(Received data assumed to be in which character set)中选择“UTF-8”。

MobaXterm:

  • 打开会话设置(Session Settings)。
  • 在终端设置(Terminal settings)中,找到终端字体(Terminal font)下的编码(Encoding)。
  • 选择“UTF-8”。

串口调试助手(如SSCOM、AccessPort等):

很多国产串口调试助手默认使用GB2312编码。如果软件支持设置显示编码,请将其设置为UTF-8。

但是在SSCOM5.13.1中,不支持编码选择“UTF-8”。

如果串口调试软件不支持UTF-8编码:

可以考虑更换支持UTF-8的串口调试软件。

或者,在代码中将UTF-8字符串转换为GB2312再发送(不是我们期望的)。

Read more

手把手github多模态大模型项目复现流程(小白可用)

写在前面:大家复现项目时可以把readme 丢给GPT 先了解整体需要做的流程框架,在复现项目之前先仔细阅读readme、分析项目框架,以下是我复现项目的相关流程以及遇到的问题 1. autodl租用 这里建议直接在autodl上租一个GPU进行环境配置  进行学生认证 刚开始使用无卡启动 先搭好环境后再直接开机 Autodl使用教程:AutoDL使用教程:1)创建实例 2)配置环境+上传数据 3)PyCharm2021.3专业版下载安装与远程连接完整步骤 4)实时查看tensorboard曲线情况 这里,我选择基础镜像--miniconda 3.10版本 pycharm镜像是官方已经把 PyTorch、CUDA、cuDNN 等常用深度学习工具都安装并配置好了,版本也是互相匹配的;复现论文代码时候我们一般选择miniconda,里面只有一个最小化的 Conda 环境管理器,其他所有东西都需要自己从头安装。 配置好之后和pycharm/vscode进行远程连接,教程见PyCharm专业版连接AutoDl详细教程(手把手教程!!) 以及一些操作小知识(重点),和再开机连接教程!

By Ne0inhk

仅限今日开源!基于Python的高性能JSON结构化编辑器架构详解

第一章:Python高性能JSON编辑器概述 在现代软件开发中,JSON(JavaScript Object Notation)作为轻量级的数据交换格式被广泛使用。随着数据规模的不断增长,对JSON文件的高效读取、编辑和写入操作提出了更高要求。传统的文本编辑方式已难以满足大型JSON文件的处理需求,因此构建一个基于Python的高性能JSON编辑器成为提升开发效率的关键工具。 核心特性 * 支持大文件流式解析,避免内存溢出 * 提供语法高亮与结构化视图,增强可读性 * 实现快速搜索与路径定位功能 * 集成校验机制,确保JSON格式合法性 技术选型对比 库名称解析速度内存占用适用场景json (标准库)中等高小到中型文件ujson高低高性能需求ijson低极低超大文件流式处理 基础解析示例 # 使用ijson进行流式解析,适用于大文件 import ijson def stream_parse_json(file_path): with open(file_path, 'rb') as f: # 逐个解析JSON对象中的事件流 parser = ijson.

By Ne0inhk
Git从零到远程协作:手把手实战指南

Git从零到远程协作:手把手实战指南

目录 序言:认识Git 1. 启程 - 安装与初体验    1.1 踏上Git之旅 - 下载与安装    1.2 第一次亲密接触 - 基础配置与仓库创建 2. 核心引擎 - 提交、历史与工作流    2.1 理解Git的“魔法” - 工作区、暂存区与仓库    2.2 记录你的足迹 - 添加(git add)与提交(git commit)    2.3 时光回溯 - 查看历史与差异(git diff) 3. 协作基石 - 分支与合并

By Ne0inhk