# 问题

今天重新写了一个 gpio 的抽象层,结果编译的时候出现了一个 bug: HAL_StatusTypeDef 无法识别
image
一看这种问题,涉及库文件不是头文件引用错就是,无意中改动了宏.

# 思考

由于我的工程是直接从 CubeMX 中生成的所以不存在什么宏改错的问题
那就到了头文件的问题了,首先考虑自己编写的 gpio 文件
我的源码中只有一个头文件与 HAL 相关
image
很显然有一半的可能是 stm32f4xx_hal_gpio.h 惹的祸.
所以我将 stm32f4xx_hal_gpio.h 替换为 main.h
编译后 0 error 0 wraning , 果然是找个的问题.
但出现了新的问题,为啥 main.h 可以 而 stm32f4xx_hal_gpio.h 不可以
经过多次转跳,在 stm32f4xx_hal_conf 中,看到了了这部分 宏
image
image
我严重怀疑,是不是因为宏开关的问题,限制了 stm32f4xx_hal_gpio.h 内部的一些定义
但是进入 stm32f4xx_hal_gpio.h 中查看找不到有宏的开关,所以我认为可能是单独的 stm32f4xx_hal_gpio.h 文件不足以构成完整的文件,缺少部分文件依赖而导致的.
虽然可以这么解释但是,还是觉得怪怪的。等以后捋清楚了再回来继续更.
-------------------2023.2.8----------------------------


大道五十,天衍四十九,人遁其一!