1.问题说明
学习自己手动搭建一个STM32HAL库工程模板文件的时候,我发现了有6个错误,6个错误的类型是一样的,其中有3个通过添加hal_rcc.h和hal_gpio.c文件得以解决。所以另外3个我也想到了时缺少了对应的.c文件导致的错误。
但是在STM32F1xx_HAL_Driver文件夹中,我没有找到类似如有“rcc”和“GPIO”这样的标志性符号。这3个错误如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dj44UXrQ-1666520551640)(/images/pasted-3.png)]
分别是HAL_NVIC_SetPriority,HAL_NVIC_SetProtityGrouping和HAL_SYSTICK_Config。
在STM32F1xx_HAL_Driver文件夹中未找到类似于“NVIC”或者“SYSTICK”的.c文件。
2.解决问题
问题描述
Undefined symbol xxx.c
含义是:“xxx.c”这个符号,没有被定义
referred from xxxx.o
含义是:上面的“xxx.c”文件在xxxx.o中被调用过
寻找xxxx.c的位置
step1:Ctrl+F弹出搜索框
step2:在Find in Files选项卡中搜索xxxx.c文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lra6WrUR-1666520551642)(/images/pasted-4.png)]
step3:在keil下方会返回在整个工程文件中找到该文件的位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9I23NQhP-1666520551643)(/images/pasted-5.png)]
从左侧任务栏,可知hal_gpio.c和hal.c已经添加进入工程文件了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2442wyOX-1666520551643)(/images/pasted-7.png)]
所以我们只需把hal_cortex.c文件添加进入工程中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7QE88z7N-1666520551643)(/images/pasted-8.png)]
再次编译
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZjxwOh1Z-1666520551644)(/images/pasted-9.png)]
问题解决
参考文档:https://blog.csdn.net/PurpleStrange/article/details/123482269