STM32 cubeMX 前期项目未生成部分模块,后期需要添加功能模块时出现L6218E错误问题的解决方法

背景:

最近的一个项目cub前期cubeMX未生成Timer部分程序,后期项目需要使用timer时需要往项目添加该部分程序时,编译出现L6218E: Error: L6218E: Undefined symbol HAL_TIMEx_MasterConfigSynchronization (referred from timer.o)等错误。

原因:

cubeMX软件在配置功能时,使用某一部分功能,会打开某一部分的功能接口,在stm32l1xx_hal_conf.h文件中有该部分的代码。

#define HAL_MODULE_ENABLED  
#define HAL_ADC_MODULE_ENABLED
/*#define HAL_CRYP_MODULE_ENABLED   */
/*#define HAL_COMP_MODULE_ENABLED   */
/*#define HAL_CRC_MODULE_ENABLED   */
/*#define HAL_CRYP_MODULE_ENABLED   */
#define HAL_DAC_MODULE_ENABLED
#define HAL_I2C_MODULE_ENABLED
/*#define HAL_I2S_MODULE_ENABLED   */
/*#define HAL_IRDA_MODULE_ENABLED   */
/*#define HAL_IWDG_MODULE_ENABLED   */
/*#define HAL_LCD_MODULE_ENABLED   */
/*#define HAL_NOR_MODULE_ENABLED   */
/*#define HAL_OPAMP_MODULE_ENABLED   */
/*#define HAL_PCD_MODULE_ENABLED   */
#define HAL_RTC_MODULE_ENABLED
/*#define HAL_SD_MODULE_ENABLED   */
/*#define HAL_SMARTCARD_MODULE_ENABLED   */
/*#define HAL_SPI_MODULE_ENABLED   */
/*#define HAL_SRAM_MODULE_ENABLED   */
/*#define HAL_TIM_MODULE_ENABLED*/   
#define HAL_UART_MODULE_ENABLED
/*#define HAL_USART_MODULE_ENABLED   */
/*#define HAL_WWDG_MODULE_ENABLED   */
#define HAL_GPIO_MODULE_ENABLED
#define HAL_DMA_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED
#define HAL_PWR_MODULE_ENABLED
#define HAL_CORTEX_MODULE_ENABLED

解决方法:

将上述代码中的/*#define HAL_TIM_MODULE_ENABLED*/ 修改为#define HAL_TIM_MODULE_ENABLED,这样便可使用TIMER功能,解决编译错误。

你可能感兴趣的:(STM32,STM32开发)