原创 【STM32技术笔记】(一)IAR工程的创建及LED跑马灯

2009-9-27 23:03 5122 5 6 分类: MCU/ 嵌入式

(一)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 设置 TagetProcessor Variant core 选择 Cortex –M3Device 选择 ST STM32F10x Endian mode 选择 LittleStack 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点击下载

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户324946 2011-5-8 10:34

楼主不错,我刚学,哈哈,定一个
相关推荐阅读
用户1622812 2009-09-27 23:04
【STM32技术笔记】(三) 系统时钟定时器
(三) 系统时钟定时器<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />一、 本课内容...
用户1622812 2009-09-27 23:02
【STM32技术笔记】(二)按键驱动
(二)按键驱动<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />一、    本课内容概...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条