IAR 工程的建立
打开 IAR,如下:
1.工作区的建立
新建 IAR 工作空间,首先是菜单 File 里选择 Open 再选择 Workspace
打开后的:
有了工作空间就可以建立工程了。
2.工程建立
点击“Project-Create New Project”
出现如下小窗口界面:
“Tool Chain:ARM”这里选的是芯片的类型,IAR 有很多其他专用的开发集成环境,比如 IAR for ARM,IAR for 430,IAR for 8051 等等。这里只安装了 ARM 的编译器,因此此选项只有 ARM。它的下面有个“Project templates”(工程模板),“Project templates”里面有四个选项,第一个是“Empty project”,表示建立一个空白的工程;第二个是“asm”,表示一个汇编程序开发的工程;第三个是“C++”,表示建立一个 C++开发工程;第四个是“C”,表示建立一个C 语言开发的工程的,因为我们需要建立 STM32 固件库的开发环境,因此在这里只需建立一个空白的工程就可以了。如下:
接着会弹出一个保存的界面:
确定路径(提前自己建立一个文件夹我在桌面上建立的文件夹叫做stm32demo)在起一个名字,就可以点击保存了。保存后界面如下:
最后,我们需要保存工作区,选择“File”->“Save Workspace”保存工程:
保存文件:
STM32 标准固件库的介绍
固件库,我们可以近似的把它认知为硬件的系统函数库,它是 ST 官方发布的基于C语言和汇编代码构成的C库,我们可以直接调用它提供给我们的库函数,进行 STM32 单片机的硬件配置和操作,目前针对 STM32F103 系列的固件库为“STM32F10x_S”,ST 的官方网站上能下载到,也可以关注我私信“IAR”获取我百度盘分享的IAR安装包、破解工具和固件。
STM32F10x_S的目录树如下:
各个文件的作用:
1.“_htmresc”文件夹存放了 STM32 固件库的 LOGO 图片;
2.“Libraries”文件夹是 STM32 固件库的主要库函数存放地,里面包含了两个文件夹:
“CMSIS”里面包含了一个“CM3”文件夹,“CM3”里面存放了一些和ARM Cortex-M3 有关的启动文件;
“STM32F10x_StdPeriph_Driver”文件夹里面就是 STM32 外设的驱动文件,例如 GPIO,CAN,USART 等等;
3.“Project”文件夹里面包含了两个文件夹,这里面存放的是一些利用标准的固件库建立起来的模板和例程:
“STM32F10x_StdPeriph_Examples”里面存放了 STM32 外设固件的标准例程;
“STM32F10x_StdPeriph_Template”里面存放了各个不同 IDE 的模板。
4.“Utilities”里面包含了用于 STM3210B-EVAL 和 STM3210E-EVAL 评估板的专用驱动。
STM32 固件库模板的建立
1.建立根目录文件夹管理代码
在“stm32demo”根文件夹里面建立“USER”,“CMSIS”,“FWLIB”几个文件夹,其中,“USER”文件夹,主要存放用户应用程序和中断文件,“CMSIS”主要存放内核和系统相关的代码;“FWLIB”主要存放STM32 标准外设的驱动代码。如图:
2.复制固件库文件
把“STM32F10x_S”文件夹里面的相关内容复制到我们建立的模板文件夹里。
下面的步骤是很重要的,一定要看清了。
在模板文件夹里面的CMSIS里面建立文件夹Startup。
将STM32F10x_S\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar\里面的相关内容复制到\CMSIS\Startup中。
将CMSIS\CM3\DeviceSupport\ST\STM32F10x\ 和 和 复制到模板文件夹CMSIS里面
将STM32F10x_S\Libraries\STM32F10x_StdPeriph_Driver\inc文件夹和 src 文件夹
复制到模板FWLIB文件夹里
将STM32F10x_S\Project\STM32F10x_StdPeriph_Template\ 和 复制到USER文件夹
STM32F10x_S\Project\STM32F10x_StdPeriph_Template\EWARM\ 和 和 和 复制到stm32demo文件夹下:
3.IAR 添加管理文件夹
点击“Add”,选择“Add Group...”
在“Group name”里面输入相关的名称,点击“OK”即可以完成相应的步骤
在建立好的文件夹上面右击,然后点击“Add”,选择“Add Group...”,即可以实现阶层文件夹的建立
重复上述所讲的步骤,我们依次建立文件夹,如图:
4.IAR 添加源码
将“stm32demo”里面的文件添加到 IAR 里相应的目录即可。添加方式很简单,只要在想要添加的文件夹上面右击,选择“Add”,然后“Add File”即会弹出相应的对话框供用户选择文件,选择好文件之后,单击“确定”即可以添加进去
依次按照上述方式,并且按照下面中的源和目的,完成源码的添加:
STM32F10X Template\CMSIS\Startup 相应文件--------------CMSIS/startup/
STM32F10X Template\CMSIS\ --------------CMSIS/system/
STM32F10X Template\FWLIB\src\文件夹里的文件 ----------------FWLIB
STM32F10X Template\USER\ -------------------USER
关于 \CMSIS\Startup 文件夹里面文件的选择,需要按照对应芯片的容量来选择:
对于STM32F103RBT6,是128kb的flash,故选择的是:
再赋一个选择的对照表:
最后,我的整个工作空间如下:
5.IDE 的配置
make一下:
报错了:
右击工程名->选择“Options”:
选择“Category”里面的“C/C++ Compiler”,然后找到“Preprocessor”,然后在“Additional include directories:”输入头文件的包含路径:
$PROJ_DIR$\
$PROJ_DIR$\CMSIS\
$PROJ_DIR$\FWLIB\inc\
$PROJ_DIR$\USER\
$PROJ_DIR$\DRIVER\inc\
如下:
在make一下
继续报错了
还是在“Options”里面,选择 Category”里面的“C/C++compiler”,找到“Preprocessor”,在“Defined Symbol”里面定义所需要的芯片容量,由于我们使用的是中等容量的,因此定义“STM32F10X_MD”
继续设置:
在“Option”->“General”->“Target”里面选择芯片类型
接着在在“Option”->“General”->“Library Configuration”里面勾选“useCMSIS”,点击“OK”
继续编译
这是少一个main函数:
将 main.c 加入进工程之后,需要编写如下代码
继续编译
好了,没有任何报错了,至此,我们配置好了使用IAR来开发STM32的所有环境。
需要我这个已经配置好了的模板文件的可以私信我。
更多的内容请关注头条号:小5嵌入式