【ARM】MDK-STM32g0xx.h文件与Define规则记录

【更多软件使用问题请点击************************************************************************************************************************************************************************************************************************************************************亿道电子官方网站】****************************************************************************************************************************************************************************************************************************************************************

1、 文档目标

记录问题STM32g0xx.h等有关ST的可读文件,尽量勿修改文件格式及对其代码进行添加和删减,记录查找问题的过程中的疑惑,并如何给予客户正确的回复,帮助销售完成验收,以便后续尾款支付。

2、 问题场景

在工程中客户移除了ST头文件的可读保护并进行了该文件的代码修改,在STM32g0xx.h中进行了函数的宏定义,但应用处并没有添加任何头文件,编译不报错。若在其他文件中添加该函数的宏定义,编译报错。

图2-1(未应用未报错,不符合语法规则)

注:绝对不建议删除对stm32gOxx.h文件的只读保护。所有来自ST的只读头文件都有很好的保护理由。

3、软硬件环境

1)、软件版本:MDK 5.38 Arm 编译器版本 6.19

2)、电脑环境:Windows 11

3)、外设硬件:无

4、解决方法

1)、宏定义的寻找模式

#define指令是C预处理器的一部分。在编译之前进行处理。一个头文件没有被你的项目使用或引用,这个头文件将不会成为你的项目构建的一部分,在项目中根本不使用由#define定义的那些参数,则它们将不会作为编译的一部分包含在内。

2)、有关ST的只读头文件。

宏定义在STM32G0xx .h中,它总是包含在基于STM32G0xx设备的项目中并使用。在后台运行的编译器工具链负责动态语法检查以及文本完成在某些情况下可能是不可靠的,所以在你的情况下,宏定义中函数等仍然是灰色,并且函数应用处没有添加头文件,但编译通过。

定义在STM32G0xx .h中的函数,它总是包含在基于STM32G0xx设备的项目中并使用。将STM32G0xx .h修改部分还原,并且将其文件格式设置为可读即可,如图4-1在Comm.h文件并进行宏定义,而后编译出现错误,符合检查动态语法规则。

图4-1(未应用报错,符合语法规则)


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

关于亿道电子

亿道电子技术有限公司(www.emdoor.cn)是国内资深的研发工具软件提供商,公司成立于2002年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

相关推荐
FreakStudio1 小时前
0 元学嵌入式 GUI!保姆级 LVGL+MicroPython 教程开更,从理论到实战全搞定
python·单片机·嵌入式·面向对象·电子diy
路溪非溪3 小时前
Linux下蓝牙框架的数据流
linux·arm开发·驱动开发
yongui478343 小时前
基于STM32的Lora SX1278程序设计与实现
stm32·单片机·嵌入式硬件
’长谷深风‘4 小时前
嵌入式 ARM 开发入门解析
汇编·arm开发·cpu·cortex
永霖光电_UVLED7 小时前
意法半导体:华虹40nm代工生产的STM32 MCU开启交付
stm32·单片机·嵌入式硬件
XMAIPC_Robot8 小时前
基于RK3588 ARM+FPGA的电火花数控系统设计与测试(三)
运维·arm开发·人工智能·fpga开发·边缘计算
冲,干,闯8 小时前
LVGL_按钮部件(LV_btn)
单片机
Zevalin爱灰灰9 小时前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(六)
单片机·物联网·嵌入式·esp8266
坤坤藤椒牛肉面10 小时前
ARM 中断初始设置
arm开发
爱喝纯牛奶的柠檬10 小时前
STM32红外遥控解码,NEC协议驱动
单片机·嵌入式硬件