标准固件库
我是以(STM32F4xx_DSP_StdPeriph_Lib_V1.8.0)为基础搭建的工程模版,有那里不对的地方,请大家指出,看到之后我会及时改正;
***1.***首先在本地创建一下文件目录;
startup:Stm32启动文件;
STM32F4xx_StdPeriph_Driver:Stm32标准的库文件,保存外设相关所有源文件以及头文件;
system:系统相关文件 比如存放中断服务函数的C文件,H文件,头文件的配置文件,外设的驱动函数库文件,存放外设的初始化结构体,外设初始化结构体成员的参数列表,外设固件库函数的声明,实现了内核之外的外设的寄存器映射;
User:这个文件夹用于存放 main.c main.h 以及用户代码;
***2.***STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar路径下的startup_stm32f40_41xxx.s文件拷贝到startup文件夹内;
3将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include内的core_cm4.h,core_cmFunc.h,core_cmInstr.h,core_cmSimd.h四个文件拷贝到startup文件夹内;
**3.**将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver路径下的inc和src文件夹及文件夹下的所有文件一同拷贝到STM32F4xx_StdPeriph_Driver文件夹下;
**4.**将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include路径下的stm32f4xx.h和system_stm32f4xx.h拷贝到system文件夹下;
**5.**将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates路径下的stm32f4xx_conf.h,stm32f4xx_it.c,stm32f4xx_it.h,system_stm32f4xx.c四个文件靠拷贝到system文件夹下;
**6.**将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates路径下的main.c和main.h拷贝到user文件夹内;
**7.**打开IAR,创建工作空间,创建新的工程,之后添加之前的文件夹到工程里,如下:
**8.**之后编译工程,这时会出现很多错误,如下图,是因为没有选择芯片类型,及添加头文件路径
这里我选择的芯片类型是STM32F407ZG,之后再这里添加头文件路径,可选择相对路径,也可选择绝对路径,可根据自己选择,我这里添加了绝对路径
之后rebuild all,发现报错,如下
将STM32F40_41xxx和USE_STDPERIPH_DRIVER两个宏添加到这里
添加完两个宏之后,rebuild ALL仍有错误,如下图;
最后把工程内src组内的stm32f4xx_fmc删除之后,编译成功;
到此搭建完毕;