VSCODE + EIDE 下 STM32 编程使用部分外设无法通过编译:undefined reference to ‘xxx‘

我在配置某些外设时,敲代码时,代码提示能正常找到所有外设的库

编译时提示找不到 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 中想要用到的库删除,再重新加载项目即可。

相关推荐
起个网名真难~44 分钟前
HAL库STM32中使用printf打印数据到串口
stm32·单片机·嵌入式硬件
Super Mark2 小时前
CLion + STM32环境配置,亲测有效(2025.06.19记)
驱动开发·stm32·嵌入式硬件
咩咩大主教4 小时前
2025最新版使用VSCode和CMake图形化编译调试Cuda C++程序(保姆级教学)
c++·vscode·cmake·visual studio·cuda·cpp·cuda c++
勿芮介6 小时前
【研发工具】.Net创建项目模板(Visual Studio)
ide·.net·visual studio
极客小张6 小时前
基于FreeRTOS的STM32工业级实时监控系统开发设计思路(多传感器融合+PyQt5远程控制)
stm32·嵌入式硬件·qt·机器学习·毕业设计·工业物联网·传感器
is08157 小时前
用 STM32 HAL/LL + Arduino 混合编程
stm32·单片机·嵌入式硬件
凌肖战8 小时前
vscode设置代码字体
vscode
瓢儿菜201815 小时前
stm32 f103c8t6仿真 串口收发测试
stm32·单片机·嵌入式硬件·proteus
蜡笔小电芯16 小时前
实时中值滤波 + 低通滤波 示例程序(STM32环境)
stm32·单片机·嵌入式硬件