0

我正在使用 STM32CubeIDE 为 STM32F411RE Nucleo 板编写应用程序。该代码涉及使用计时器。当我尝试构建我的项目时,我收到了许多调用的计时器函数的“未定义引用”错误。

环顾四周后,我注意到与错误相关的计时器函数(例如:HAL_TIM_Base_Init())位于 stm32f4xx_hal_tim.c 中,并以删除线显示为灰色。我认为这是我看到的未定义参考错误的原因。

根据我的谷歌搜索,我的理解是删除线意味着该功能已被弃用。但是,我无法弄清楚如何解决这个问题。我确实遇到了另一个与我的问题有点相关的问题:什么会导致我的源文件变灰并带有删除线的文件图标?. 但是,它的解决方案与源文件有关,而不是与源文件中的函数有关。

我看到的截图: 我看到的截图

我是 STM32 和 STM32CubeIDE 世界的新手,因此非常感谢任何帮助/解释。谢谢

4

1 回答 1

0

这些函数显示为灰色,因为未满足预处理器指令,因此这些函数在编译时被丢弃。

如果您查看文件,您会在一开始就找到类似以下内容: #ifdef HAL_TIM_MODULE_ENABLED

STM32 HAL 旨在能够显式启用或禁用多个模块。这些定义位于stm32l4xx_hal_conf.h文件中。

只需打开此文件并找到HAL_TIM_MODULE_ENABLED定义并删除周围的注释块。

此外,配置文件是在 CubeIDE 中自动生成的,具体取决于所选的“引脚和配置”设置(ioc 文件)。还要检查这些以启用计时器模块。

于 2020-05-13T10:34:32.387 回答