主要是自己解决的方案汇总(搞不明白怎么转载,就直接挂链接),要是有其他的解决方法,欢迎分享,对文章内容有问题,欢迎指正和质疑。
目录
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).
这个是环境配置不到位
解决办法可以参考下面这位作者的文章
Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).
SystemInit被调用了,但是并没有定义
解决办法可以参考下面这位作者的文章
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库函数”这个文件夹中,可以去找一下)
添加完之后,这样就好了
编译一下
未完待续.......