STM32 cubeMX 前期项目未生成部分模块,后期需要添加功能模块时出现L6218E错误问题的解决方法
程序员文章站
2024-03-01 17:18:52
...
背景:
最近的一个项目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功能,解决编译错误。
上一篇: css技巧十条
下一篇: Java定时清理过期文件的实例代码