在使用ST官网的固件包新建工程文件后,编译报错“D:/Keil/ARM/INC/ST/STM32F10x/stm32f10x_type.h(23): error: #256: invalid redeclaration of type name "s32" (declared at line 470 of "Src/App/stm32f10x.h")”,在网上也看到了类似的问题,不过都没有明确的修改说明啊。
工程中使用的固件库版本相对较高,而MDK自带的固件库版本相对较低,两者相互冲突了,下面来看一下冲突的地方:打开工程中包含的文件"stm32f10x.h",会发现这是一个包含8000多行代码的文件,不用担心,将它拉到最下面,然后向上找,很快就会发现下面三行代码"#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h"#endif",工程中包含的include "stm32f10x_conf.h”文件是MDK自带的,因为版本原因,最好自己重新写一下,放在自己的工程文件夹下。
下面来看一下stm32f10x_conf.h文件需要写的东西,主要是需要包含的是固件库外设驱动,例如需要GPIO的定义文件,就可以添加语句#include "stm32f10x_gpio.h",还有就是断言验证的语句,具体可以参考ST官网的固件库例子程序。
本文解决了一个常见的STM32开发问题——当使用ST官网提供的固件包创建新工程并遇到编译错误时如何处理。文章详细介绍了如何通过调整自定义的配置文件来避免不同版本固件库之间的冲突。
1万+

被折叠的 条评论
为什么被折叠?



