LED 跑马灯
版权所有 STMFANS 原创,转载请保留出处
一步一步创建第一个 IAR 工程 (IAR442 + ST-LINKII)
首先创建项目目录,拷贝公共文件:将 STM32 软件库中 FWlib 目录中的 library 目录拷贝到所建项目的目录中
这个是库 FWLIB 文件夹
把 FWlib 目录中的 library 目录拷贝到所建项目的目录中
将软件库的 Examples 目录里的任一例程的 stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h 和 main.c 拷贝到项目的目录中(这里选择的是 GPIO 目录下的 \FWLib\examples\GPIO\IOToggle)
拷贝软件库中 \project\EWARM\ 目录中的 stm32f10x_vector.c、cortexm3_macro.s、lnkarm_ram.xcl 和 lnkarm_flash.xcl 到项目的目录中
好了,系统的库文件和一些stm32的特征文件已经 copy 过来了
.
下面开始忙活 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
点击 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
呵呵!出现了错误,那是因为所有代码我们都没修改,直接 copy 原来 example 的 稍作修改一下(去掉图示的 include ) 用于我们的 LED 控制
此工程创建完毕,我们就可以修改代码,进行编译和仿真了,hoho!
.
.
LED 跑马灯代码部分
RCC_Configuration(); // 配置系统时钟
NVIC_Configuration(); // 配置 NVIC 和 Vector Table
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
GPIO_Configuration(); // 配置使用的 GPIO 口
while (1)
{
亮 - 延迟 - 灭
………..
}
|