原创 Eclipse + Keil MDK 3.5 STM32 软件模拟LED跑马灯开发入门

2009-4-11 18:27 7831 4 6 分类: MCU/ 嵌入式
https://static.assets-stash.eet-china.com/album/old-resources/2009/4/11/4db6d8ca-ed6a-4fce-a793-dde201ce692e.rarEclipse+Keil MDK 3.5 stm32开发入门.part1.rar
https://static.assets-stash.eet-china.com/album/old-resources/2009/4/11/c4bb00e2-f672-4b03-829a-8c1023e24738.rarEclipse+Keil MDK 3.5 stm32开发入门.part2.rar

点击下载Eclipse+Keil MDK 3.5 stm32开发入门.pdf



Eclipse + Keil MDK 3.5 STM32 软件模拟LED跑马灯开发入门



 



本人原来一直做JavaEE开发,最近想转到嵌入式开发,经过多方了解,先后了解了ARM7/9,最后选定从Cortex‐M3入手学习,目前市面上Cortex‐M3核的开发板大部分都是意法半导体STM32系列MCU,就以STM32来入门学习,也因为一直做JavaEE开发,对eclipse IDE 开发环境比较熟悉,并且用起来比较顺手,其基于eclipseC/C++开发工具也很出色,其在后面陆续介绍。之所以要eclipse+MDK是要用eclipse强大的C开发功能和Keil的调试功能各自的优点。这也是最近学习所得。



1、开发环境搭建:



其开发环境包括eclipseMDK 开发环境,下面是具体软件的获取和安装方法:



Java环境:eclipse是基于java的开发平台,首先系统要安装了Java虚拟机(JRE),到官网下载JREhttp://java.sun.com/javase/downloads/index.jsp



入图中下载即可,然后默认安装即可。



Eclipse IDE for C/C++ Developers:然后下载eclipse C/C++ IDE,地址是:



http://www.eclipse.org/downloads/ 注意要下载windows版的。





只需要下载Eclipse IDE for C/C++
Developers (68 MB)
,该包已经集成了C/C++插件的,把下载的压缩包接压到任何目录即可,运行解压目录中的eclipse.exe,然后指定其工作区(WorkSpace)目录即可。



Windows下面GCC编译器:适用于Eclipse IDE for C/C++ Developers常用的GCC编译器有CygwinMinGW,这里使用Cygwin,以下下载地址:



ftp://mcu123:mcu123@ftp://www.mcu123.net/upload_上传目录/freertos/cygwin_osdev_2009.iso



http://mirror.transact.net.au/sourceforge/j/ji/jinix/cygwin_osdev_2009.iso



或者



http://sourceforge.net/project/showfiles.php?group_id=201649&package_id=277469&release_id=651579



以上提供的Cygwin的其GCC版本都是最新版4.3.3,也可以下载其他的但大部分gcc都是3.4的,在本文的使用中其并无影响,这里只使用Eclipse IDE for
C/C++ Developers
开发功能和KeilARM编译器和调试功能。



下载后安装,其Cygwin安装方法及介绍网上很多,这里不作介绍。



Keil MDK 3.5mdk可以到官网下载,



http://www.keil.com/update/check.asp?P=MDK&V=3.40&S=8RMWF-6C6NZ-7NEAU-SPL3R-D9AMF-GAGIC 也可以通过其他途径获得,之所以要用MDK3.5是因为其ARM编译器从3.1更新到了4.0MDK 3.43.1,如果对此无所谓,也可以适用其他版本的MDK,但一定要用支持Cortex-M3核的MDK



Keil最新发布了μVision4 beta1版本,如果感兴趣也可以下载试一试,MDK3.5中为μVision3.8,下载地址:http://www.keil.com/download/docs/381.asp



2、构建项目:



运行eclipse安装目录中的eclipse.exe启动eclipse,闪屏后提示指定工作区(WorkSpace)目录,如下图,指定其工作区(WorkSpace)目录,点击OK即可。





其如何新建项目和使用可以参考我的另外一篇文章《Windows下搭建ARM开源开发环境》,下载地址



http://www.mcu123.net/bbs/dispbbs.asp?BoardID=28&ID=1255



在这里不作介绍,也可以googlebaidu,这类介绍也很多。



新建一个C project ,选择Hello World ANSI C
Project
,建立项目(stm32)后,在工作区目录(如:f:\work)中生成了以项目名称命名的文件夹(如:F:\work\stm32),项目目录中产生两个文件夹Debugsrc,删除src下面所有文件。



        1 copy
MDK
安装目录下面ARM\Boards\Keil\MCBSTM32目录中任意例子文件夹(C:\Keil\ARM\Boards\Keil\MCBSTM32\Blinky)下面的STM32_Init.(c,h)STM32_Reg.h, STM32F10x.s四个文件到项目目录src下面,然后copy STM32库文件library目录到src下面,如下图。





        2 设置项目路径,项目上点击右键,选择属性,展开第四项C++ Genral ,选择Paths and Symbols  > Includes > GNU C ,点击ADD,打开ADD directory path 对话框,选择Workspace 按钮,依次选择



stm32>src>library>inc ,点击OK,重复以上选择stm32>src,点击OK,最后Apply OK。如果项目抱错可以不管,不影响编辑器的适用。



        3)新建main.c文件,输入如下内容:




#include <stm32f10x_lib.h>  // STM32F10x Library Definitions


#include "STM32_Init.h"     // STM32 Initialization


#define LED            
1              
// PB5: LED D2


#define DELAY        400000


 


/**


 *延时时间


 */


void Delay(vu32 nCount) {


    for (; nCount != 0; nCount--)


       ;


}


 


int main(void) {


    char i = 0;


    char isPD = 0;


    stm32_Init(); // STM32 setup


 


    while (1) {


       if (i == 16) {


           isPD = 0;


       }


       if (i == 0) {


           isPD = 1;


       }


       GPIOB->ODR = (LED << i); // switch on LED


       Delay(DELAY);


       GPIOB->ODR = 0; // switch off LED


       Delay(DELAY);


       if (isPD) {


           i++;


       } else {


           i--;


       }


    }


}


 




这个例子是点亮管脚GPIOB Pin0所接的LED跑马灯demo



4)启动MDK,新建项目,项目目录指定为eclipse stm32项目目录(F:\work\stm32),copy启动代码,选择MCU STM32F103任意一个,这里选择STM32F103RB,然后把STM32F10x.sSTM32_Init.cmain.c三个文件添加到原代码组,如下图:





右击项目,选择Options for Target “stm32”
,
进行配置,这里只选择Debug,其他选都不作配置, Debug中配置仿真器,可以选择软件仿真或Jlinkulink等硬件仿真器,选择软件仿真user simulator



打开STM32_Init.c文件使用Configuration Wizard进行配置,这里将GPIOB所有管脚都配置为模拟输入(Analog Input,保存。如图中配置:







 



然后编译,无错误即可以调试。如图 ,启动菜单Debug -->
Start/Stop Debug Session
进入调试模式:            



                     如下图,Peripherals ->
General Purpose I/O -> GPIOB,
打开GPIOB监视串口。





然后点击Debug菜单中run,或按F5,或点击工具栏



中的按钮运行程序,即可在GPIOB监视窗口中观察变化。





即可看到代表16位的复选框来回选中模拟LED灯闪烁。



然后修改main代码,在看看效果:




int main(void) {


    char i = 0;


    char isPD = 0;


    stm32_Init(); // STM32 setup


 


    while (1) {


       if (i == 16) {


           isPD = 0;


       }


       if (i == 0) {


           isPD = 1;


       }


 


       if (isPD) {


           GPIOB->ODR |= (LED << i); // switch on LED


           Delay(DELAY);


           i++;


       } else {


           GPIOB->ODR &= ~(LED <<
i);
// switch on LED


           Delay(DELAY);


           i--;


       }


    }


}




 



3、Eclipse C/C++编辑器使用的几个技巧:



(1)   
使用快捷键Ctrl+Shift+F,可以自动格式化源代码,免去手动格式化代码的麻烦,代码格式可以在菜单Window  >> Preferences >> C/C++ >>
Code Style
中修改或定义,在Window  >> Preferences
>> C/C++  >>  Editor >> Syntax Cloloring
中修改代码高亮色彩。



(2)   
使用Alt+/来自动完成或代码辅助,可以在Window  >> Preferences >> General
>> Keys
中配置快捷键,默认的自动完成(Word Completion)快捷键是Alt+/ 修改为Ctrl+Alt+/,此功能不常用用,而非常强大实用的代码辅助(Content Assist)功能快捷键是Ctrl+Space,与中文输入法切换冲突,修改为Alt+/,如图使用Alt+/时的代码辅助功能:





(3)   
代码快速定位,安装Ctrl键,鼠标移动到变量名,函数名,结构名等上面,单击即可快速定位到声明其的位置。



(4)   
还有许多强大的特性这里不再介绍,可以参考Eclipse帮助文档。



 






PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1189640 2009-4-17 09:36

很多图片都不能显示,楼主

用户518079 2009-4-12 10:37

谢谢分享!
相关推荐阅读
用户174172 2009-04-23 23:26
Keil MDK 3.5 Jlink V7 在STM32中SRAM 调试成功方法成功.pdf
Keil MDK 3.5 Jlink V7 在STM32中SRAM 调试成功方法成功.pdf...
我要评论
2
4
关闭 站长推荐上一条 /3 下一条