微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32开发板例程讲解之一:使用IAR 5.3建立工程

stm32开发板例程讲解之一:使用IAR 5.3建立工程

时间:11-27 来源:互联网 点击:
学习stm32,入门是非常关键的,而自己建的第一个也就显得很重要了。尽快入门,建立起学习的信心,对后续的学习有非常大的帮助。本文将讲述任何在IAR上建立一个project,并开始自己学习stm32的第一个实验。

实验所需:安富莱stm32F103ZE开发板一块,J-Link V8仿真器 1个,安装iar embedded workbench 5.3,安装JLinkARM_V420a,下载STM32F10x_StdPeriph_Lib_V3.3.0,安富莱开发板board文件。

第一步,新建一个文件夹,命名为GPIO_IOTG,准备所需的文件,先将STM32F10x_StdPeriph_Lib_V3.3.0目录下的Libraries文件夹拷贝到GPIO_IOTG文件夹中;再在STM32F103ZE-EK基础例程ExampleGPIO_IOToggle和STM32F103ZE-EK基础例程录下找到所需文件,复制到GPIO_IOTG文件夹中,如图1:


第二步,点击菜单 File --> New -->Workspace 创建一个新的Workspace;然后点击菜单 Project --> Create New Project 创建一个项目 (empty 空白项目),保存到GPIO_IOTG文件夹下,如图2:


第三步,在Workspace窗口中,右击GPIO_IOTG,在弹出的菜
单中选择add,再选择group,给工程添加组,以方便管理文件,然后添加需要的文件,如图3:

各组的组名可以根据自己的习惯来命名。

其中APP组为应用程序,包含main.c和stm32f10xit.c,main.c,主函数,整个程序的默认入口,所有文件调用都在这里,stm 32f10x_it.c,全系统中断程序全部在这里;

CMSIS中为cortex-m3核的外设访问层源文件和系统设备访问层源文件,完成堆栈和系统的初始化,其中core_cm3.c为核心设置,包括C语言类型,汇编语言等等,不用改动。system_stm32f10x.c,系统环境设置,包括寄存器变量,运行频率;DOC为说明文档;

EMARMv5组为系统启动文件,根据自己的芯片类型和编译的环境选择不同的tartup;

StdPeriph_Driver——可以添加的硬件模块驱动,库自带的模板已经添加了;

STM32-EVAL——针对开发板的LCD驱动以及LED,按键和端口的驱动。

第四步,选项配置,主要包括微处理器类型的选择、编译器的配置、连接器的配置、调试器的选择和配置,其他的部分可以选择默认设置。

(1)微处理器类型的选择及Library的配置

点击 general options

设置 Taget:Device 选择 ST STM32F10xE;Endian mode 选择 Little。

配置Library:若在串口程序中用到printf,Library Configuration标签页中的Library选择为Full,否则选择normal就可以了。


(2)编译器的配置

最重要的部分是Preprocessor 的配置,要配置project中用到各种头文件的路径,如果路径错误,编译就不会通过,从而出现error。

$PROJ_DIR$
$PROJ_DIR$LibrariesCMSISCM3CoreSupport
$PROJ_DIR$LibrariesCMSISCM3DeviceSupportSTSTM32F10x
$PROJ_DIR$LibrariesSTM32F10x_StdPeriph_Driverinc
$PROJ_DIR$......UtilitiesSTM32_EVAL
$PROJ_DIR$Board
$PROJ_DIR$BoardSTM32F103ZE-EK

注:1)PROJ_DIR$是在工程文件夹目录下,是一个相对的目录。

2)$PROJ_DIR$......UtilitiesSTM32_EVAL是在工程文件所在磁盘目录下,可以包含不是工程文件夹中的头文件。

若在内存中启动,需要在 defined symbols 里面写上 VECT_TAB_RAM;如果程序比较大则需要在flash中启动,就不需要配置这一项。

USE_STDPERIPH_DRIVER在stm32f10x.h中用到,若要用硬件驱动则需要这个预编译符号;如果不设置这个预编译符号的话,硬件驱动就不包含在project中,应用程序自然就没法直接访问硬件寄存器了,这就需要用户使用地址来访问寄存器。
USE_STM3210E_EVAL在stm32_eval.h中使用,用于包含stm3210e_eval.h。


(3)连接器的配置

点击 Override default

选项:

1.如果在 Flash 中调试程序 设置 stm32f10x_flash.icf,如图,也可以设置为$PROJ_DIR$stm32f10x_flash.icf。

2.如果在 RAM 中调试程序,设置 stm32f10x_ram.icf。

注意:在进行该项设置时,请确认电路板上的Boot0 和Boot1引脚的跳线连接是否正确。



4)调试器的配置

点击 Debugger

Setup 选择调试工具,我用的是 JLINK8所以选择的是J-LINK/J-TRACE,勾选Run to main.

Download

1). 已选择下载程序到 Flash,可选:Verify download( Use flash loader(s) 必须开启!);

2). 已选择下载程序到 RAM 或使用模拟器:无需选择;

3). 如果程序已下载到 Flash:开启 Suppress download;

第五步,make,没有error和warning之后,连接好JLINK,给开发板上电,然后就可以下载调试了。

OK!第一个project已经建好,并配置成功,看到led不断地闪烁,你一定很兴奋吧,是不是已经蠢蠢欲动,想看明白一个基础的例程,掌握stm32用库文件编程的框架,然后自己写程序,来实现自己想要的功能,哈哈,别着急,先把user mannal的IO部分看明白,建议阅读《STM32学前班教程之五:给等待入门的人一点点建议》。下一讲将讲解STM32的IO,敬请关注!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top