我在配置某些外设时,敲代码时,代码提示能正常找到所有外设的库
编译时提示找不到 undefined reference to 'xxx_init'
,也就是没找到stm32f10x_xxx.c
。
同一个目录下的stm32f10x_tim.c
却可以被找到。
临时解决方案
将stm32f10x_xxx.c复制到头文件的目录下
最终解决方案
发现是 EIDE 配置的问题。编译时 EIDE 默认将一些外设的库函数排除在外了,
在项目目录的.eide\eide.json
中:
json
{
...
"targets": {
"Debug": {
"excludeList": [
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c",
"hal/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c"
],
....
}
将 excludeList
中想要用到的库删除,再重新加载项目即可。