你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CubeMX再次生成代码时中文注释出现乱码,如何解决?

[复制链接]
lvgl 提问时间:2026-8-12 09:48 / 未解决

我是使用的STM32CubeMX6.12.0,生成的是STM32CubeIDE工具链的代码,后面我又添加了一些组件,再次生成代码时,出现了部分中文注释乱码的问题,大家有遇到吗,怎么解决?

PixPin_2026-08-12_09-48-50.png

收藏 评论3 发布时间:2026-8-12 09:48

举报

3个回答
fafa1 回答时间:3 小时前

Kimi的解答:

这个问题非常常见,根本原因是 STM32CubeMX(基于 Java)生成文件时的编码STM32CubeIDE 打开文件时的编码 不一致导致的。


问题根因

STM32CubeMX 是基于 Java 的跨平台工具,生成代码时的文件编码由 JVM 的 file.encoding 参数决定。在中文 Windows 环境下,6.12.0 版本默认可能使用 GBK 编码,而 STM32CubeIDE 默认使用 UTF-8 编码。当你再次生成代码时,CubeMX 以 GBK 编码写入文件,CubeIDE 以 UTF-8 解码打开,中文注释就会乱码。


推荐解决方案:统一为 UTF-8

第一步:修改 STM32CubeMX 的启动配置

找到 STM32CubeMX 安装目录下的 STM32CubeMX.ini 文件(有些版本叫 STM32CubeMX.l4j.ini),用记事本打开,在 -vmargs 段落下添加:

ini

-Dfile.encoding=UTF-8
-Dsun.locale.format.language=zh
-Dsun.locale.format.country=CN

完整示例:

ini

--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dfile.encoding=UTF-8
-Dsun.locale.format.language=zh
-Dsun.locale.format.country=CN
-Xms128m
-Xmx1024m

⚠️ 注意 :修改时关闭 CubeMX,修改后重启生效。修改只对之后新建/重新生成的工程有效 ,已有乱码的文件需要手动修复。

第二步:确认 STM32CubeIDE 编码为 UTF-8

  1. 在 CubeIDE 中右键点击工程名 → Properties
  2. 选择 ResourceText file encoding
  3. 确保选择 UTF-8 (如果显示 Inherited,可以勾选 "Other" 手动输入 UTF-8
  4. 点击 Apply and Close

第三步:清理缓存(可选但推荐)

关闭 CubeMX 后,删除以下缓存目录:

plain

%USERPROFILE%\.stm32cubemx
%USERPROFILE%\.eclipse

然后重新打开 CubeMX 生成代码。

CM_STM32 回答时间:3 小时前

字符编码格式问题?

HyunYong 回答时间:3 小时前

就是编码格式的问题

用vscode打开的话 他就会提示你要你换对应的能正常显示的编码了

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版