【问题标题】:How to fix functions grayed out with a strike-through in STM32CubeIDE?如何修复STM32CubeIDE中带有删除线的功能?
【发布时间】:2023-03-22 01:05:02
【问题描述】:

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

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

根据我的谷歌搜索,我的理解是删除线表示该功能已被弃用。但是,我无法弄清楚如何解决这个问题。我确实遇到了另一个与我的问题有些相关的问题:What would cause my source files to be greyed out with a strikethrough through the file icon?。但是,它的解决方案与源文件有关,而不是与源文件中的函数有关。

我看到的截图:

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

【问题讨论】:

    标签: eclipse stm32 stm32f4discovery stm32cubeide


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的解释,我现在明白了,它解决了问题。
    猜你喜欢
    • 2010-11-14
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2018-07-03
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多