IAR建立STM32F4工程

 在建立工程之前,为了使自己的工程看起来更加清晰,方便后期的修改,分别建立不同的文件夹以存放不同类型的文件,本工程建立的文件夹如下图所示。
在这里插入图片描述

 本文基于ST官方固件库建立STM32F407工程,详细步骤如下:

1. 官方固件库下载

 官方固件库下载链接为:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0.rar

2. 复制相关文件

2.1 复制启动文件 .s

 在文件夹 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar 下找到相对应的.s启动文件,本文是基于 IAR 开发环境建立的工程,因此在iar文件夹下找相关的启动文件,如果是Keil的开发环境,则在Templates\arm 中寻找相应的启动文件。
在这里插入图片描述
 具体使用哪个启动文件需要自己根据自己的开发板来定义,本文使用的是STM32F407开发板,可以选择startup_stm32f40_41xxx.s启动文件,将此文件复制到自己的工程目录下的bsp文件夹下(参考 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Includestm32f4xx.h 中的定义进行选择)。

2.2 复制system相关文件

 复制文件夹 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates 下的 system_stm32f4xx.c 到自己目录下的bsp文件夹下。
在这里插入图片描述
 复制文件夹 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 下的 system_stm32f4xx.h 和 stm32f4xx.h 文件到自己的工程目录下的bsp文件夹下。
在这里插入图片描述

2.3 复制底层驱动文件

 复制文件夹 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver 下的 inc 和 src 文件夹到自己工程目录下的 driver 文件夹下。
在这里插入图片描述

2.4 复制.icf链接文件

 复制文件夹 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates\EWARM 下的 stm32f4xx_flash.icf 文件到自己的工程目录下的bsp文件夹下。
在这里插入图片描述

2.5 复制中断和配置相关文件

 复制文件夹 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates 下的 stm32f4xx_conf.h、stm32f4xx_it.c和stm32f4xx_it.h 文件文件到自己的工程目录下的bsp文件夹下。
在这里插入图片描述

 复制完成的工程如下图所示。

3. IAR新建工程并添加工程文件

4. IAR工程的修改

 新建IAR工程之后,为了使工程能够编译成功,需要对工程中的文件和配置选项进行修改,详细过程如下:

4.1 工程文件的修改

4.1.1 具体单板的选择

 打开 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 下的 stm32f4xx.h 文件,依据自己手中的单板类型打开相应的宏。例如本实验中使用的是STM32F407开发板,所以打开 STM32F40_41xxx 宏。除此之外,我们使用了标准外设库,所以还应该打开 USE_STDPERIPH_DRIVER 宏。

 通常情况下,我们会在IAR工程选项中进行该宏的定义。右击工程 Options-> C/C++ Comliler -> Proprecessor -> Defined Symbols 中填写需要定义的宏,如下图所示。

4.1.2 外部晶振的修改

 STM32F4中外部晶振默认的是 25MHz ,在使用时需要根据自己的开发板来修改具体的外部晶振值,否则会影响开发板的正常工作(例如串口乱码问题)。
 修改方法如下:
 找到并打开 stm32f4xx.h 文件,可以看出默认定义的外部晶振大小为25MHz,本次实验使用的外部晶振为8MHz,所以要将25000000改为 8000000
在这里插入图片描述
 修改了外部晶振大小之后,还需要对分频系数PLL_M进行修改,找到并打开 system_stm32f4xx.c 文件,找到如下图所示的代码处,可以看出默认定义的PLL_M为25,与默认的外部晶振匹配,本次实验使用的外部晶振为8MHz,所以将红框部分的25改为8,详细原因需要查看STM32F4参考手册的时钟树章节,不明白为什么这么修改的可以在文末留言。
在这里插入图片描述

4.2 IAR配置的修改

4.2.1 头文件包含路径修改

4.2.2 链接文件选择修改

4.2.3 printf重定向到串口出错修改

4.2.4 Debug和下载器修改

4.2.5 Tab替换为4个空格修改

4.2.6 ctrl+T 一键格式化代码修改

发布了57 篇原创文章 · 获赞 64 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_36310253/article/details/103967961
今日推荐