news 2026/4/16 12:55:55

VScode for stm32 消除中文数组警告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VScode for stm32 消除中文数组警告

在用VScode 开发stm32的时候,有些场景下不得不用GB2312编码格式的c文件,如采用液晶中文字库等。常规的UTF-8格式下,一个中文字符占用3个字节,而GB2312是占用2字节的,为能让字库正常识别中文,不得不定义中文数组,编译的时候就是一堆警告。 如果想让 VS Code 的智能感知也识别这些参数(避免编辑器标红),同时方便一键编译,可修改c_cpp_properties.jsontasks.json

解决方法:

1》修改tasks.json(一键编译用)

  • 按 Ctrl+Shift+P → 输入Tasks: Configure Task→ 选择Create tasks.json file from template→ 选择Others

  • 修改生成的tasks.json,添加编译参数:

  • { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "echo", "type": "shell", "command": "echo Hello" }, { // 任务名称,自定义(比如 "编译menu_fun.c") "label": "build-menu-fun", "type": "shell", // 编译器路径(根据你的实际路径修改,嵌入式替换为 arm-none-eabi-gcc) "command": "arm-none-eabi-gcc", // 嵌入式编译器 "args": [ // 输出可执行文件名称(比如生成 menu_fun.exe) "-o", "${fileDirname}/App/OLED/menu_fun", // 要编译的文件:当前目录下的 menu_fun.c "${fileDirname}/App/OLED/menu_fun.c", // 核心:适配 GB2312 中文编码 "-finput-charset=GB2312", "-fexec-charset=GB2312", // 屏蔽中文数组触发的警告 "-Wno-multichar", // 可选:屏蔽其他可能的中文相关警告 "-Wno-implicit-int", "-Wno-unused-variable" ], // 设置为默认构建任务(按 Ctrl+Shift+B 可直接执行) "group": { "kind": "build", "isDefault": true }, // 识别 GCC 编译错误/警告 "problemMatcher": ["$gcc"], // 任务描述(可选) "detail": "编译 menu_fun.c(适配 GB2312 中文编码,屏蔽多字符警告)" } ] }

    示例中仅屏蔽了根目录/APP/OLED/menu_func.c,如有其他文件可依样添加。

2》修改c_cpp_properties.json(语法检查用)

tasks.json只负责编译,编辑器语法检查需单独配置c_cpp_properties.json,格式如下

{ "configurations": [ { "name": "Win32", // 或 "ARM-GCC"(嵌入式) "includePath": ["${workspaceFolder}/**"], "defines": [], "compilerPath": "C:/MinGW/bin/gcc.exe", // 你的 GCC 路径 "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64", // 核心:添加编码和警告参数 "compilerArgs": [ "-finput-charset=GB2312", "-fexec-charset=GB2312", "-Wno-multichar" ] } ], "version": 4 }

3》验证是否生效

编译完成后,可通过以下方式验证参数是否生效:

  1. 编译时无「multi-character character constant」「illegal character encoding」等警告;

  2. 运行生成的可执行文件,中文字符能正常显示(无乱码);

  3. 若用嵌入式编译器,可通过arm-none-eabi-objdump -s test.elf查看字符串段,中文字符的十六进制值符合 GB2312 编码(如「中」是 0xD6 0xD0)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 1:37:08

山海鲸占用空间越来越大?软件瘦身攻略来了

一、概述 山海鲸可视化在使用过程中,我们可能会下载大量数据、组件和模型,最终导致山海鲸可视化占用存储空间越来越大。 下面就为大家详细介绍一下,应该如何减少山海鲸可视化对存储空间的占用。 二、项目清理 大量过往项目没有及时得到清理…

作者头像 李华
网站建设 2026/4/15 16:33:32

2026年,还能继续入网络安全行业吗?那些行业不敢说的秘密

收藏!2026年网安行业生存指南:不推荐入行?先了解真相再决定 文章揭示2026年网络安全行业面临就业难、收入不稳定、企业重视度低等挑战。企业需要能发现漏洞、写工具、理解攻防逻辑的人才,而非只会使用工具的"工具人"。…

作者头像 李华
网站建设 2026/4/16 11:10:35

交流调压那些事儿:单相、三相及带中性线三相交流调压

单相交流调压,三相交流调压,三相交流调压带中性线。 (改变触发角和负载三相桥式半控整流电路仿真,改变触发角或负载得到不同的波形) 在电力电子领域,交流调压是一项极为重要的技术,它广泛应用于…

作者头像 李华
网站建设 2026/4/12 21:48:04

探索 S7 - 200 组态王构建全自动洗衣机控制系统

S7-200组态王基于PLC的全自动洗衣机工业家用变频洗衣机控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面在工业与家用领域,基于 PLC 的全自动洗衣机控制系统越来越受到关注。今天咱们就来聊聊利用 S7 - 200 与组态王…

作者头像 李华
网站建设 2026/4/14 21:00:52

双闭环整流器:VOC、SVPWM 与锁相环的 MATLAB 仿真探索

双闭环整流器 VOC控制 SVPWM控制 锁相环大功率直流700V以上30A MATLAB Simulink仿真~结果标准! 最近在电力电子的世界里探索,双闭环整流器可是个很有意思的研究对象,尤其是结合了 VOC 控制、SVPWM 控制和锁相环技术,还能输出大功率直流 700V…

作者头像 李华
网站建设 2026/4/16 12:45:49

FPGA 图像处理之白平衡实现

FPGA白平衡/自动白平衡/FPGA图像处理 工程和算法包含以下内容: 1,MATLAB中实现图像处理。 2,verilog代码利用MATLAB联合modelsim仿真实现的图像处理。 3,小梅哥AC620和正点原子新起点/开拓者的FPGA板卡上实现的图像处理。 4&#…

作者头像 李华