IAR创建STM32标准工程

一:准备阶段

        1.IAR:我使用的是IAR 8.32.1 ,至于怎么下载、破解,我觉得百度一下就可以,很容易获取到资源的。

        2.STM32标准库:这个标准库可以自行到网上下载。跳转ST(根据自己使用的版本使用)

        3.硬件资源:STM32F103ZET

二: 创建本地工程

1.STM32官方标准库的下载

IAR创建STM32标准工程_第1张图片

 2.创建IAR的工程目录文件

IAR创建STM32标准工程_第2张图片

2.1【Config】保存IAR工程需要的配置文件;

2.2【Library】保存STM32标准库文件和一些内核文件;

2.3【Object】保存IAR工程文件,以及IAR编译过程产生的文件;

2.4【User】保存自己写的代码文件,我主要是放Main.c文件。

3.构建工程文件 

3.1将EWARM内的文件复制进步骤2中的【Config】文件夹。

IAR创建STM32标准工程_第3张图片

3.2将Libraries标准库文件复制进步骤2中的【Libraries】文件夹。(其中一些无用的文件可以自行删除)

        3.2.1【CMSIS\CM3\CoreSupport】 是M3核通用的文件,需要用到。

        3.2.2【CMSIS\CM3\DeviceSupport\ST\STM32F10x】STM32提供的标准库的.h文件和.c文件,其中:stm32f10x.h里定义了芯片所有寄存器的基地址,以及配置寄存器的结构体的定义;两个system_stm32f10x文件时系统默认时钟的配置,它里面的SystemInit函数会在芯片启动时调用(启动文件.s里),所以我们在main函数里不进行时钟配置也可以正常工作。

        3.2.3【CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar】构建IAR项目是,STM32用到的启动文件,根据你实际的芯片大小进行选择。

3.3复制用户文件到步骤2中的【User】文件夹。

IAR创建STM32标准工程_第4张图片

        3.3.1【main.c】这个文件你可以自己创建,也可以直接复制,然后删除掉里面main函数的代码即可。

        3.3.2【stm32f10x_conf.h】 包含哪些用到的外设的头文件

        3.3.3【stm32f10x_it.h】中断函数的定义,如果用到外设的中断,可以统一在这个文件夹里写。

三:创建IAR工程 

1.创建工作空间

【IAR】->【File】->【New Workspace】

2.保存工作空间

【File】->【Save Workspase As】->【选择上一个步骤创建工程的Object文件夹】->【保存的名字和工程名字相同即可】

3.创建IAR工程

【Project】->【Create New Project】->【Empty project】->【选择上一个步骤创建工程的Object文件夹】->【保存的名字和工程名字相同即可】

4.添加分组

【工作空间鼠标右击】->【Add】->【Add Group...】->【依次先创建Libraries、User、StartUp】

IAR创建STM32标准工程_第5张图片

5.添加文件进IAR工作空间

IAR创建STM32标准工程_第6张图片

备注1:在这里我把.h文件也添加进来了,只是个人习惯,你也可以不用把.h文件添加进来。

备注2:如果某些.c文件没有用到,也可以添加到工程里面,然后再该文件上【右击】->【Options】->【Exclude from build】打勾,那么它就不会参加编译。

四:配置工程 

1.选择芯片型号

【Project】->【Options】->【General Options】->【Target】->【Device】

IAR创建STM32标准工程_第7张图片

2.配置头文件路径和全局宏定义

 【Project】->【Options】->【C/C++Compiler】->【Preprocessor】IAR创建STM32标准工程_第8张图片

IAR创建STM32标准工程_第9张图片

USE_STDPERIPH_DRIVER
STM32F10X_HD

3.配置stm32f10x_flash.icf文件 

【Project】->【Options】->【Linker】->【Config】 

IAR创建STM32标准工程_第10张图片

4.选择调试器 

【Project】->【Options】->【Debugger】

IAR创建STM32标准工程_第11张图片

五:编译工程及解决问题

1.直接编译将会出现一个Core_cm3版本的问题。

IAR创建STM32标准工程_第12张图片

 错误的原因是因为新版本CMSIS的intrinsics.h等文件与之前的版本不兼容。

 解决办法有两个:(也可以自行百度)

1:好像是STM32导入的core版本和IAR提供的版本不一致,所以使用STM32的就好了,而且注释掉core_cm3.h93行://#include

IAR创建STM32标准工程_第13张图片

2:不用STM32提供的core,也就是在配置头文件路径的时候,不要导入core_cm3.h,然后使用系统提供的。

IAR创建STM32标准工程_第14张图片

IAR创建STM32标准工程_第15张图片

你可能感兴趣的:(STM32,stm32,单片机,嵌入式硬件)