(一)IAR工程的创建及LED跑马灯<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、 首先创建项目目录,拷贝公共文件
我们来一步一步创建第一个 IAR 工程 (IAR442 + ST-LINKII)
将 STM32 软件库中 FWlib 目录中的 library 目录拷贝到所建项目的目录中
这个是库 FWLIB 文件夹,把 FWlib 目录中的 library 目录拷贝到所建项目的目录中
将软件库的 Examples 目录里的任一例程的 stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h 和 main.c 拷贝到项目的目录中(这里选择的是 GPIO 目录下的 GPIO\Example1)
拷贝软件库中 \project\EWARM\ 目录中的 stm32f10x_vector.c、cortexm3_macro.s、lnkarm_ram.xcl 和 lnkarm_flash.xcl 到项目的目录中
二、 创建IAR工程,并进行配置
下面开始忙活 IAR 了,打开 IAR442 点击菜单 File --> New -->Workspace 创建一个新的工程
点击菜单 Project --> Create New Project 创建一个项目 (empty 空白项目)
保存项目到设定的项目根目录中。在项目的位置点右键,然后点 add ,用户可以向项目中添加 *.c 文件;也可以添加代码组,然后将c 文件添加到组里面
对于这个 LED 的例子,我添加了3个代码组,分别为 EWARM,FWLIB,USER
1 . 把 stm32f10x_vector.c ,cortexm3_macro.s 这 2 个文件 add 到 EWARM 中
2. 把 stm32f10x_flash.c,stm32f10x_gpio.c,stm32f10x_lib.c,stm32f10x_nvic.c,stm32f10x_rcc.c 5 个文件 add 到 FWLIB 中
3. 把 main.c ,stm32f10x_conf.h, stm32f10x_it.c , stm32f10x_it.h 这 4 个文件 add 到 USER 中
添加好的情况如下图所示
文件添加完毕 下面来配置一下这个工程:
在项目名称上单击右键选择Option,或点击菜单 Project --> Option,点击 general options ,设置 Taget,Processor Variant ,core 选择 Cortex –M3,Device 选择 ST STM32F10x ,Endian mode 选择 Little,Stack align 选择: 4 bytes
点击 C/C++ Compiler ,Language,选择用户编程语言 ,Plain‘char’is:Signed 表明使用 char 定义的 变量为有符号的;Unsigned 表明使用 char 定义的变量为无符号的。
点击 Optimizations,根据使用需求选择代码 (Size),或运行速度 (speed) 优化:
1. None ---用于调试
2. Low
3. Medium
4. High --- 用于最终代码
点击 Preprocessor
设置 *.h 文件所在目录
$PROJ_DIR$\
$PROJ_DIR$\library\inc\
然后在 defined symbols 里面写上 VECT_TAB_RAM
点击 Linker OutPut
选择上 Allow C-SPY specific extra output file
开启 C-SPY 调试器
点击 Extra Output 选择上 Generate extra output file 用于产生目标和调试文件
Output format 根据需要选择生成的目标文件 默认是 选择 simple – code
进入Config选项卡
点击 Override default
选项:
1.如果在 Flash 中调试程序 设置 lnkarm_flash.xcl
2.如果在 RAM 中调试程序,设置 lnkarm_RAM.xcl
注意:在进行该项设置时,请确认电路板上的Boot0 和Boot1引脚的跳线连接是否正确
点击 Debugger
Setup 选择调试工具,由于我用的是 ST-LINNK2 所以选择的是 Third – Party Driver
勾选Run to main
点击 Download
1. 已选择下载程序到 Flash, 可选:Verify download ( Use flash loader(s) 必须开启!)
2. 已选择下载程序到 RAM 或使用模拟器:无需选择
3. 如果程序已下载到 Flash:开启 Suppress download
点击 Third – Party Driver 指定 ST-LINK2 的驱动位置
目标文件是 STM32Driver.dll
OK! 设置好了,我们来点一下 rebuild all ,没有问题,那么此工程创建完毕,我们就可以修改代码,进行编译和仿真了,
三、 LED跑马灯程序部分
RCC_Configuration(); // 配置系统时钟
NVIC_Configuration(); // 配置 NVIC 和 Vector Table
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOC的时钟
配置GPIOC
while (1)
{
亮 - 延迟 - 灭
………..
}
说明:
由于STM32功能强大,而函数库为了提高程序的系统性,因此配置程序均比较繁杂,因此需要细心地对照函数库说明文档,才能理解每一个配置函数的定义及使用方法,因此此处需要耐心地对待。
源程序见相应例程文件夹。
四、 修改程序,建立基础工程模版
加入GPIO_configuration函数,把所有对GPIO进行配置的库函数装载在这里,减低主函数的冗余;
加入SystemInit函数,把所有系统配置函数装载;
在USER程序组中加入SystemInit.c和SystemInit.h文件,把所有系统配置程序均放如此.c文件中,系统定义文件放入.h文件中,这样,以后便可以很方便地进行函数的编程了。
修改delay函数,如需要比较精确的延时,可以用示波器测量,或者用systick函数产生。
在SystemInit.h中加入LED GPIO宏定义,并加入基本操作宏定义。
源程序见相应例程文件夹。
附上源程序及PDF教程:
https://static.assets-stash.eet-china.com/album/old-resources/2009/9/26/14db7aae-3bc8-49b6-96ca-22391dd4d6f2.rarhttps://static.assets-stash.eet-china.com/album/old-resources/2009/9/26/5b19ff7f-834e-4523-b7c8-df1658a0caf0.rar
用户324946 2011-5-8 10:34