这段时间在keil使用stm32都是直接使用的模板文件,今天试着自己建立个工程,将库文件复制进去,但是出了几个问题。
1、error: #256: invalid redeclaration of type name "s32"
这是新旧库的区别。主要是问题出在stm32f10x_type.h stm32f10x.h这两个库文件。其中第一个是keil自带的stm32的库文件,是旧版的,而第二个是新的,在编程序的时候,当main函数使用到s32,它会先在user,即用户文件夹下进行查找,如果找不到会自动进入keil自带库文件,然后又在option选项中定义的include路径中查找,这样就出现s32重复定义的问题。解决办法,只要把stm32f10x.h拷贝到user文件夹下就可以。
2、
#include "stm32f10x.h"这句,在这个重要的头文件里,并没有定义好一些东西,分别在stm32f10x.h的0070行,取消对 #define STM32F10X_HD 的屏蔽,
0105行 取消对#define USE_STDPERIPH_DRIVER的屏蔽,这两个定义好,才能正常工作,第一个是选择存储容量的型号,每种芯片都不太一样,所以让你选择,第二个是使用标准库文件,因为我们是要用库的,所以必须选择,默认是不用库的,直接进行寄存器的操作。
3、我建立的文件夹有RMMDK、USER、LIB、CMSIS
上传几个图片吧