
根因CubeMX 和 Keil5 编码对不上CubeMX 是 Java 写的跨平台工具生成文件时默认按 JVM 的file.encoding走。在中文 Windows 上没配置过的话 JVM 可能用 GBK也可能用 UTF-8版本不同行为不一样而且不带 BOM。Keil5uVision5 默认按系统 ANSI中文 Windows GBK解码打开文件对 UTF-8 无 BOM 的文件会硬拆成 GBK中文直接变成锟斤拷或åä½ å¥½ 。更糟的是如果你在乱码状态下CtrlS保存了乱码会被硬编码进文件永久丢失 。治本办法让 CubeMX 输出 UTF-8找到 CubeMX 安装目录下的STM32CubeMX.ini有的版本叫STM32CubeMX.l4j.ini在文件末尾加两行 -Dfile.encodingUTF-8 -Duser.languagezh修改时不要打开CubeMX软件还有之前的工程不行要修改完成后新建的工程才行