如何解决STM32CubeIDE中删除线灰化的功能?

问题描述 投票:0回答:1

我正在使用STM32CubeIDE为STM32F411RE Nucleo板编写一个应用程序。该代码涉及到定时器的使用。当我试图构建我的项目时,调用的定时器函数出现了一些 "未定义引用 "的错误。

经过查看,我注意到与错误相关的定时器函数(如:HAL_TIM_Base_Init())位于stm32f4xx_hal_tim.c中,并以删除线灰化。我认为这就是我看到的未定义引用错误的原因。

根据我的google搜索,我的理解是,删除线意味着该函数已被废弃。然而,我无法找出如何解决这个问题。我确实遇到了另一个与我的问题有点相关的问题。是什么原因导致我的源文件在文件图标上以删除线显示为灰色?. 不过,解决这个问题的方法与源文件有关,而不是源文件中的函数。

我看到的截图。Screenshot of what I'm seeing

我是STM32和STM32CubeIDE的新手,所以我非常感激任何帮助解释。谢谢你的帮助

eclipse stm32 stm32f4discovery stm32cubeide
1个回答
0
投票

这些函数是灰色的,因为没有满足预处理器指令,因此这些函数在编译时被丢弃。

如果你在文件中查看,你会发现在最开始的时候有这样的内容。#ifdef HAL_TIM_MODULE_ENABLED

STM32 HAL被设计成可以显式地启用或禁用几个模块,这些定义位于: stm32l4xx_hal_conf.h 文件。

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

此外,配置文件是在CubeIDE中自动生成的,取决于所选择的 "Pin & Configuration "设置(ioc文件)。同时检查这些来启用定时器模块。

© www.soinside.com 2019 - 2024. All rights reserved.