admin管理员组

文章数量:1537955

2024年6月17日发(作者:)

Eclipse + Keil MDK 3.5 STM32 软件模拟LED

跑马灯开发入门

本人原来一直做JavaEE开发,最近想转到嵌入式开发,经过多方了解,先后

了解了ARM7/9,最后选定从Cortex‐M3入手学习,目前市面上Cortex‐M3核的

开发板大部分都是意法半导体STM32系列MCU,就以STM32来入门学习,也因

为一直做JavaEE开发,对eclipse IDE 开发环境比较熟悉,并且用起来比较顺手,

其基于eclipse的C/C++开发工具也很出色,其在后面陆续介绍。之所以要

eclipse+MDK是要用eclipse强大的C开发功能和Keil的调试功能各自的优点。这

也是最近学习所得。

1、 开发环境搭建:

其开发环境包括eclipse和MDK 开发环境,下面是具体软件的获取和安

装方法:

Java环境:eclipse是基于java的开发平台,首先系统要安装了Java虚拟机

(JRE),到官网下载JRE:

/javase/downloads/ ,

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

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

/downloads/ 注意要下载windows版的。

只需要下载

Eclipse IDE for C/C++ Developers (68 MB),该包已经集成

了C/C++插件的,把下载的压缩包接压到任何目录即可,运行解压目录中的

,然后指定其工作区(WorkSpace)目录即可。

Windows下面GCC编译器:适用于Eclipse IDE for C/C++ Developers常用

的GCC编译器有Cygwin和MinGW,这里使用Cygwin,以下下载地址:

ftp://mcu123:mcu123@ftp:///upload_上传目录

/freertos/cygwin_osdev_

/sourceforge/j/ji/jinix/cygwin_osdev_

或者

/project/?group_id=201649&package_i

d=277469&release_id=651579

以上提供的Cygwin的其GCC版本都是最新版4.3.3,也可以下载其他的

但大部分gcc都是3.4的,在本文的使用中其并无影响,这里只使用Eclipse IDE

for C/C++ Developers开发功能和Keil的ARM编译器和调试功能。

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

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

/update/?P=MDK&V=3.40&S=8RMWF‐6C6NZ‐

7NEAU‐SPL3R‐D9AMF‐GAGIC 也可以通过其他途径获得,之所以要用MDK3.5

是因为其ARM编译器从3.1更新到了4.0,MDK 3.4是3.1,如果对此无所谓,

也可以适用其他版本的MDK,但一定要用支持Cortex‐M3核的MDK。

Keil最新发布了

µVision4 beta1版本,如果感兴趣也可以下载试一试,MDK3.5中为

µVision3.8

,下载地址:

/download/docs/

2、 构建项目:

运行eclipse安装目录中的启动eclipse,闪屏后提示指定

工作区(WorkSpace)目录,如下图,指定其工作区(WorkSpace)目录,

点击OK即可。

其如何新建项目和使用可以参考我的另外一篇文章《Windows下搭

建ARM开源开发环境》,下载地址

/bbs/?BoardID=28&ID=1255。

在这里不作介绍,也可以google或baidu,这类介绍也很多。

新建一个C project ,选择Hello World ANSI C Project,建立项目(stm32)

后,在工作区目录(如:f:work)中生成了以项目名称命名的文件夹(如:

F:workstm32),项目目录中产生两个文件夹Debug和src,删除src下面

所有文件。

(1) copy MDK 安装目录下面ARMBoardsKeilMCBSTM32目录中

任意例子文件夹(如C:KeilARMBoardsKeilMCBSTM32Blinky)下面的

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 Library Definitions

#include "STM32_Init.h" // STM32 Initialization

#define LED 1 // PB5: LED D2

#define DELAY

/**

*延时时间

*/

void Delay(vu32 nCount) {

}

int main(void) {

while (1) {

if (i == 16) {

}

if (i == 0) {

}

isPD = 1;

isPD = 0;

char i = 0;

char isPD = 0;

stm32_Init(); // STM32 setup

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

;

400000

}

}

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

Delay(DELAY);

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

Delay(DELAY);

if (isPD) {

}

i++;

i--;

} else {

这个例子是点亮管脚

GPIOB Pin0所接的LED跑马灯demo。

(4)启动MDK,新建项目,项目目录指定为eclipse stm32项目目录

(F:workstm32),不copy启动代码,选择MCU 为STM32F103任意一个,

这里选择STM32F103RB,然后把STM32F10x.s、STM32_Init.c、main.c三

个文件添加到原代码组,如下图:

右击项目,选择Options for Target “stm32” ,进行配置,这里只选择

Debug,其他选都不作配置, Debug中配置仿真器,可以选择软件仿真

或Jlink,ulink等硬件仿真器,选择软件仿真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) {

}

}

if (isPD) {

}

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

Delay(DELAY);

i++;

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

Delay(DELAY);

i--;

while (1) {

if (i == 16) {

}

if (i == 0) {

}

isPD = 1;

isPD = 0;

char i = 0;

char isPD = 0;

stm32_Init(); // STM32 setup

} else {

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帮助文档。

本文标签: 项目开发目录代码下载