LED跑马灯实验-库函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void Delay(__IO uint32_t nCount);
int main(void)//主函数
{
/*系统始终配置**********************************************/
RCC_Configuration();
/*初始化LED*/
STM_EVAL_LEDInit(LED1);
1.2
1.理解固件库的结构
2.分析和学习固件库
3.灵活运用GPIO
1.3
60分钟
1.4
熟悉C语言知识,熟练MDK的使用
1.5
1.解压stm32f10x_stdperiph_lib.zip可以从ST官方网站免费下载。本教程使用的标准库版本为3.1.2
2.创建一个GPIO文件夹
2.1新建子文件夹User,用于存放用户源程序
3.2将库中的演示代码\GPIO\labsolutions\4GPIO_fuction\User中的文件复制到GPIO\User文件夹.
4.新建Keil MDK工程
4.1启动Keil MDK,点击菜单New uVision Project,
新建一个工程,命名为GPIO
4.2选择CPU类型为STM32F107VC(这是MDV-STM32-107开发板采用的CPU类型)
LED跑马灯实验
修改记录
版本号.
作者
描述
修改日期
0.1
徐珊
First Draft
2011-9-Βιβλιοθήκη Baidu4
审核记录
姓名
职务
签字
日期
LED
1.1
GPIO即通用可编程输入输出口,在此我们通过GPIO编程实现一个跑马灯的实验。该跑马灯实验是最简单,也是一般最先开始的一个实验,它可以搭建一个最小的工程项目,之后,所有的实验都可以建立在该项目之上,从而节省了在搭建过程中所消耗的时间和精力。所有的GPIO操作都是以跑马灯为基础进行的。
version:v1.0
author:sky
**********************************************************/
/*头文件------------------------------------------------------------------*/
2.2新建子文件夹Project,用户KEIL工程文件
2.3在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。
3.复制源代码到GPIO文件夹
3.1将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2\Libraries文件夹和Utilities文件夹整体复制到GPIO文件夹下。这就是ST的标准库,是以源代码形式提供的。
4.3当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)
4.4根据自己的需要修改Target名字。(名字任意)
4.5为了便于代码管理,在这个Project下创建几个Group (名字可以任意)
User :存放用户自己写的源代码
RVMDK :存放启动文件(汇编文件)
4.6.5给STM32_EVAL文件夹添加文件
STM32_EVAL接口文件路径:\Utilities\STM32_EVAL
5.修改源代码。我们将修改main.c文件,换成我们自己跑马灯程序。
/********************************************************
启动文件路径:\Libraries\CMSIS\Core\CM3\startup\arm
4.6.3给stdPeriph_Driver文件夹添加文件
设备驱动文件路径:\GPIO\Libraries\STM32F10x_StdPeriph_Driver\src
4.6.4给CMSIS文件夹添加文件
CMSIS接口文件路径:\GPIO\Libraries\CMSIS\Core\CM3
StdPeriph_Driver :存放ST标准库外设驱动文件
CMSIS :存放CMSIS接口文件(这也是库的一部分)
STM32_EVAL存放板集设备驱动文件
4.6创建好Group后,我们开始依次添加文件。
4.6.1给User文件夹添加文件路径:User文件夹
4.6.2给RVMDK文件夹添加文件,路径:\Libraries\CMSIS\Core\CM3\startup\arm
initialize the PLL and update the SystemFrequency variable. */
SystemInit();
}
/*延时函数*/
STM_EVAL_LEDOff(LED1);//熄灭LED1
Delay(0x3FFFFF);
STM_EVAL_LEDOn(LED3);//点亮LED3
STM_EVAL_LEDOff(LED2);//熄灭LED2
Delay(0x3FFFFF);
STM_EVAL_LEDOn(LED4);//点亮LED4
STM_EVAL_LEDInit(LED2);
STM_EVAL_LEDInit(LED3);
STM_EVAL_LEDInit(LED4);
while (1)
{
STM_EVAL_LEDOn(LED1);//点亮LED1
Delay(0x3FFFFF);//延时,维持灯的点亮
STM_EVAL_LEDOn(LED2);//点亮LED2
#include "stm32f10x.h"
#include "stm32_eval.h"
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
STM_EVAL_LEDOff(LED3);//熄灭LED3
Delay(0x3FFFFF);
STM_EVAL_LEDOff(LED4);//熄灭LED4
}
}
/*始终配置*/
void RCC_Configuration(void)
{
/* Setup the microcontroller system. Initialize the Embedded Flash Interface,
相关文档
最新文档