Error: L6218E: Undefined symbol系列问题解决方法(遇到了就持续更新)

主要是自己解决的方案汇总(搞不明白怎么转载,就直接挂链接),要是有其他的解决方法,欢迎分享,对文章内容有问题,欢迎指正和质疑。

目录

Error: L6218E: Undefined symbol assert_param (referred from stm32f10x_gpio.o).

Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).

Error: L6218E: Undefined symbol RCC_APB2PeriphResetCmd (referred from stm32f10x_gpio.o).

Error: L6218E: Undefined symbol RCC_APB2PeriphClockCmd (referred from main.o).


Error: L6218E: Undefined symbol assert_param (referred from stm32f10x_gpio.o).

这个是环境配置不到位

解决办法可以参考下面这位作者的文章

MDK编译报错Error: L6218E: Undefined symbol assert_param (referred from misc.o)._.\objects\template-reg.axf: error: l6218e: undefin__Amen的博客-CSDN博客解决办法1:在options中的C/C++选项栏下的define中添加一条USE_STDPERIPH_DRIVER解决办法2:在stm32f4xx.h文件开头处添加一条定义#define USE_STDPERIPH_DRIVER_.\objects\template-reg.axf: error: l6218e: undefined symbol assert_param (rehttps://blog.csdn.net/qq_38958704/article/details/107534755


Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).

SystemInit被调用了,但是并没有定义

解决办法可以参考下面这位作者的文章

MDK编译出现*.axf: Error: L6218E: Undefined symbol 问题解决方法_江流爱百花的博客-CSDN博客本文参考此贴写成,原帖链接 http://blog.csdn.net/yx_l128125/article/details/9231385在使用MDK编译工程时出现了如下错误,test.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).test是工程名称,Undefihttps://blog.csdn.net/NiliushaNLS/article/details/50498875


Error: L6218E: Undefined symbol RCC_APB2PeriphResetCmd (referred from stm32f10x_gpio.o).

Error: L6218E: Undefined symbol RCC_APB2PeriphClockCmd (referred from main.o).

这个是缺少文件stm32f10x_rcc.c,导致头文件stm32f10x_rcc.h调用函数的时候,搜索不到

eg:

根据编译报错可以知道,编译时文件main.c和stm32f10x_gpio.c找不到对应的函数调用,所以需要在外部文件夹中添加文件。

在新建工程时,不是所有的文件都是自己编写的,我习惯将引用的文件单独放在一个文件夹中(不过这几天的学习,我发现,这些文件还需要更细的划分,虽然开始麻烦,但方便后续管理)

图中所示的文件夹中只有stm32f10x_rcc的头文件,并没有stm32f10x_rcc的源文件,故要添加源文件stm32f10x_rcc.c。

 右键所选中的文件夹,选择Add Existing Files to Group 'startup'...

找到存放源文件stm32f10x_rcc.c的文件夹,然后选择对应的文件,点击add添加文件。(这文件通常“STM32F10x_StdPeriph_Driver库函数”这个文件夹中,可以去找一下)

 添加完之后,这样就好了

 编译一下


 未完待续.......

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值