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

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

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

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

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

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

举报

4个回答
fafa1 最优答案 回答时间:2026-8-12 11:33:07

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 回答时间:2026-8-12 11:43:31

字符编码格式问题?

HyunYong 回答时间:2026-8-12 12:00:40

就是编码格式的问题

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

lvgl 回答时间:前天 19:41

感谢各位大佬的回答,修改ini之后问题解决了。

所属标签

相似问题

官网相关资源

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