当前位置: 首页 > news >正文

【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 版权协议,转载请附上原文出处链接和本声明。

相关文章:

  • C语言中qsort函数的详解,以及模拟
  • 数据通信与计算机网络——绪论
  • Spring组件初始化扩展点:BeanPostProcessor
  • CMake学习笔记(二):变量设值,源文件/文件查找
  • 为什么在域名注册后还需要进行解析?
  • 大模型时代:主流训练、微调、推理与部署框架深度解析及对比
  • Spring设计模式 八股速记 高层模块底层模块 依赖倒置原则 开闭原则 接口隔离原则
  • 洛谷每日1题-------Day22__P1421 小玉买文具
  • 技术债务的隐患:何时重构,何时妥协?
  • 【认知框架重构】
  • 【R语言】FetchData函数:处理单细胞数据的灵活高效工具
  • 实验篇| Nginx环境搭建-安全配置
  • Linux:(socket套接字——TCP协议)
  • 乐凡R10U系列新品发布:极致轻薄与算力突破,定义行业终端新标杆
  • NetCore实现RTSPServer(包含交互及推流)
  • 中间件漏洞之weblogic
  • 软件测试--如何使用har2case和HttpRunner + Allure生成测试报告
  • 网络爬虫【爬虫库urllib】
  • 车载通信架构 --- UB位更新策略记录
  • 【Python学习笔记】一些关于多线程,xls文件读取,PyQt5,PyInstaller打包等问题的解决方案记录
  • 广药集团原董事长李楚源被“双开”:去年8月被查,曾多次发表争议言论
  • 高飞已任南航集团党组副书记
  • 工人日报:应对“职场肥胖”,健康与减重同受关注
  • 七猫征文大赛颁出112万奖金,非遗题材作品斩获金奖
  • 当番茄霸总遇上晋江古言,短剧IP小变局
  • 3年多来俄乌要首次直接对话?能谈得拢吗?