未取消注释HAL_conf.h时使用HAL库UART出现链接错误的原因
STM32 CubeIDE中UART宏定义的链接器行为疑问
我希望在不修改stm32****_HAL_conf.h(不取消注释相关内容)的情况下使用UART,于是尝试在main.h中添加:
#define HAL_UART_MODULE_ENABLED
同时手动包含头文件:
#include "stm32h7xx_hal_uart.h"
但CubeIDE提示Undefined reference to错误。
我有个疑惑:为什么在HAL_conf.h中取消注释该宏定义就能解决所有错误(本质只是让HAL_conf.h包含UART头文件),但在main.h中自定义添加却不行?而且CubeMX每次刷新都会重置HAL_conf.h的内容,我想搞懂这个宏定义是如何改变链接器行为的。
我已经执行了以下操作,但问题仍未解决:
- 向项目中添加了所需的UART头文件和源文件;
- 在程序中包含了该头文件;
- 定义宏以触发
#ifdef逻辑;
内容的提问来源于stack exchange,提问作者mohammadsdtmnd
相关产品推荐
相关产品推荐

