如何修复STM32CubeIDE中带有删除线的功能?
Posted
技术标签:
【中文标题】如何修复STM32CubeIDE中带有删除线的功能?【英文标题】:How to fix functions grayed out with a strike-through in STM32CubeIDE? 【发布时间】:2020-08-25 18:24:39 【问题描述】:我正在使用 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 世界的新手,因此非常感谢任何帮助/解释。谢谢
【问题讨论】:
【参考方案1】:这些函数显示为灰色,因为未满足预处理器指令,因此这些函数在编译时被丢弃。
如果您查看文件,您会在开头找到类似以下内容:
#ifdef HAL_TIM_MODULE_ENABLED
STM32 HAL 旨在能够显式启用或禁用多个模块。
这些定义位于stm32l4xx_hal_conf.h
文件中。
只需打开此文件,找到HAL_TIM_MODULE_ENABLED
定义并删除周围的注释块。
此外,配置文件是在 CubeIDE 中自动生成的,具体取决于所选的“引脚和配置”设置(ioc 文件)。还要检查这些以启用计时器模块。
【讨论】:
感谢您的解释,我现在明白了,它解决了问题。以上是关于如何修复STM32CubeIDE中带有删除线的功能?的主要内容,如果未能解决你的问题,请参考以下文章