“static void TIM_ETR_SetConfig(TIM_TypeDef* TIMx, uint32_t TIM_ExtTRGPrescaler,uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
static void TIM_ITRx_SetConfig(TIM_TypeDef* TIMx, uint16_t TIM_ITRx);"
main.c文件引用了库文件"stm32f2xx_hal_tim.c"中的这两个static类型(static表示本文件有效,问题就出在这)的函数,结果有感叹号提示,编译也出错Error: L6218E: Undefined symbol TIM_ITRx_SetConfig (referred from…
原因:"stm32f2xx_hal_tim.c"中,已经声明(在文件158行左右),而"stm32f2xx_hal_tim.h"中未声明。
解决办法:将"stm32f2xx_hal_tim.c"中的声明去掉,并将函数定义的关键字“static”去掉,然后再在"stm32f2xx_hal_tim.h"声明函数(static一样要去掉),最终编译成功,问题解决。
综上所述,究其原因就是没理解static的关键字,意思是函数仅在本文件使用,禁止其他文件引用。