本帖最后由 xinxincaijq 于 2012-10-30 08:59 编辑
在拿到板子前就开始准备了,建立一个小工程,主要是用于环境建立和程序下载,今天拿到了板子并且已经下载验证过了,所以发个帖子,大家共同学习。
在建立工程前,首先安装板子的驱动,也就是ST-LINK的驱动。在没有安装驱动前,插上板子,LED2是一直闪烁的。此时提示发现新硬件需要安装驱动,如果点击默认自动安装,是失败的,找不到驱动路径。此时要找到MDK的安装路径下的
ARM\STLink\USBDriver ST-Link_V2_USBdriver.exe文件,双击安装,安装完毕后在插上板子,选择默认自动安装,不用指定路径,一直点下一步到最后,就完成了驱动安装任务。
好了,现在开始正题,介绍我的工程建立过程:我的目的是先点亮一个LED,有了这个基础,就可以熟悉环境建立和程序下载。
第一步:建立一个项目文件夹:GPIO
第二步:在GPIO文件夹中建立3个文件夹:List,RVMDK,User
其中List用于存放编译后的文件和输出文件(这个在后期会详细描述) RVMDK用于存放工程文件 User包括2部分东西(STM32F0lib文件夹和用户文件:比如main.C,stm32f0xx_it.c) STM32F0lib文件夹里面存放固件库文件中的所有.c和.h文件。
第三步:开始建立工程 打开MDK软件,选择Project-----new u Vision project
选择板子上的芯片STM32F051R8
点击OK后,出现是否要copy启动代码,这个代码是MDK软件自带的,此处我选择“否”
接着点击如下图所示的品字图标,建立项目的管理器(此处自己起个名字了,暂时没有想好叫什么)
根据需要加入相应的文件,比如我的USER文件夹中加入main.c,stm32f0xx _it.c(用于中断处理函数),init.c(用于初始化),define.h Lib中加入stm32f0xx_rcc.c, stm32f0xx_gpio.c,system_ stm32f0xx.c(因为此工程中只是用到了GPIO,所以只用加入时钟(RCC),GPIO,系统定义文件(system_stm32f0XX) Startup中放置启动代码Startup_ stm32f0xx.s(这个在固件库中有),
建立完成后就像下图所示。
接下来做一些其他设置(配置)如下图,点击魔法棒图标
进行如下的设置:其中 Processor Symbols这里必须要定义,如果不定义会有错误,我会在下一个进程贴中说明有什么错误。
Include Paths这里主要是定义头文件的路径,由于我把所有的头文件都放在User\STM32F0lib文件夹中,所有此处指定路径为这个文件夹。前面的..表示工程路径。
在如下图所示,点击Select Folder for Objects..把路径设置为一开始建立的List文件,这样主要是为了使文件分类保存,不至于太混乱。
最后设置下载器:如下图,在Debug选项下选择ST-Link Debugger
选择Setting---Flash Download,选择flash (64K)
好了,此时基本配置已经结束了,开始编辑程序:
主程序如下图所示,包括了一个延时函数和LED灯闪烁程序。
在define.h文件中写入如下程序 #define LED0_ON() GPIO_WriteBit(GPIOC,GPIO_Pin_8,1) ,点亮LED #define LED0_OFF() GPIO_WriteBit(GPIOC,GPIO_Pin_8,0) ,熄灭LED
在Init.c中主要是初始化函数,包括时钟初始化和GPIO初始化。
(要用到哪个外设,一定要开启时钟,否则该外设不能使用) void RCC_Configuration(void) { SystemInit(); // ?系统时钟48M
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE); //使能GPIOC时钟
} //PC8输出 void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOC, &GPIO_InitStructure); }
此时把程序保存编译后,没有错误,点击下载,此时板上的LED2是红色和绿色闪烁,表示正在下载程序,当灯变成红色常量时,此时就表示下载完成了。
现在看看板子,LED4蓝色灯开始闪烁了。如果把
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
#define LED0_ON() GPIO_WriteBit(GPIOC,GPIO_Pin_8,1) ,点亮LED #define LED0_OFF() GPIO_WriteBit(GPIOC,GPIO_Pin_8,0) ,熄灭LED
改成GPIO_Pin_9,此时板子上的绿灯开始闪烁了,蓝灯不在亮了。这样进一步证明工程建立已经成功了。
|