由于最近在弄STM32芯片,利用IAR搭建,对于我来说就是小白。之前一直利用的keil,虽然这两者都可以用,但是IAR在某些场景是跟方便的。
1、在本地创建以下文件夹目录,以下截图是本地电脑创建的。
EWARM:创建IWAR工程保存的文件
Startup: Stm32启动文件
STM32F4xx_Driver:stm32标准的库文件
USer:用户编写的文件
2、移动文件夹,本地下载Stm32芯片的标准的固件库文件。
2.1 移动启动文件 xxx.s 到本地的Startup文件夹
启动文件此路径:\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar
根据需要移动相应的startup的对应的.s文件,我这里需要stm32f407的芯片。所以选择 stm32f40_41的芯片就可以。
2.2 移动STM32_Driver标准的文件,到STM32F4XX_Dirver。
路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver
2.3 移动system系统相关的文件
第一个文件:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates
第二个相关的文件:
文件存在路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
第三个文件路径:此文件为复制中断和配置相关文件
路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates
第四个:复制.icf链接文件。
路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates\EWARM
当已经移动完成之后,IAR工程上是这样的
这是我编译完成的工程,0 error 和 0 wanings 。但是之前也有很多报错。
错误一、缺少芯片的宏,需要在IAR软件中添加
添加
打开stm32f4xx.h 中这一块使用那个芯片内心,需要添加上对应的宏。
错误二、stm32f4xx_fmc.c 找不到对应的定义,百度查了,关于这个。可能是stm32官网没有做到标准库中,所以我选择直接移除此文件,解决此问题。
错误三:在stm32f4xx_it.c,此文件使用SysTick_Handler函数。将STM32固件库中 main.c 和main.h拷贝过来,解决此问题,
一开始是我写的 main.c 文件。当我编译的出现报错,我就没有想明白,果断的参考了源码。
错误四:报错缺少头文件
修改IAR工程配置在此处加上头文件路径,我们选择变量的形式,方便我们复制和修改。