1.IAR:我使用的是IAR 8.32.1 ,至于怎么下载、破解,我觉得百度一下就可以,很容易获取到资源的。
2.STM32标准库:这个标准库可以自行到网上下载。跳转ST(根据自己使用的版本使用)
3.硬件资源:STM32F103ZET
2.1【Config】保存IAR工程需要的配置文件;
2.2【Library】保存STM32标准库文件和一些内核文件;
2.3【Object】保存IAR工程文件,以及IAR编译过程产生的文件;
2.4【User】保存自己写的代码文件,我主要是放Main.c文件。
3.1将EWARM内的文件复制进步骤2中的【Config】文件夹。
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】文件夹。
3.3.1【main.c】这个文件你可以自己创建,也可以直接复制,然后删除掉里面main函数的代码即可。
3.3.2【stm32f10x_conf.h】 包含哪些用到的外设的头文件
3.3.3【stm32f10x_it.h】中断函数的定义,如果用到外设的中断,可以统一在这个文件夹里写。
【IAR】->【File】->【New Workspace】
【File】->【Save Workspase As】->【选择上一个步骤创建工程的Object文件夹】->【保存的名字和工程名字相同即可】
【Project】->【Create New Project】->【Empty project】->【选择上一个步骤创建工程的Object文件夹】->【保存的名字和工程名字相同即可】
【工作空间鼠标右击】->【Add】->【Add Group...】->【依次先创建Libraries、User、StartUp】
备注1:在这里我把.h文件也添加进来了,只是个人习惯,你也可以不用把.h文件添加进来。
备注2:如果某些.c文件没有用到,也可以添加到工程里面,然后再该文件上【右击】->【Options】->【Exclude from build】打勾,那么它就不会参加编译。
【Project】->【Options】->【General Options】->【Target】->【Device】
【Project】->【Options】->【C/C++Compiler】->【Preprocessor】
USE_STDPERIPH_DRIVER
STM32F10X_HD
【Project】->【Options】->【Linker】->【Config】
【Project】->【Options】->【Debugger】
错误的原因是因为新版本CMSIS的intrinsics.h等文件与之前的版本不兼容。
解决办法有两个:(也可以自行百度)
1:好像是STM32导入的core版本和IAR提供的版本不一致,所以使用STM32的就好了,而且注释掉core_cm3.h93行://#include
2:不用STM32提供的core,也就是在配置头文件路径的时候,不要导入core_cm3.h,然后使用系统提供的。