




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LED跑马灯实验修改记录版本号.作者描述修改日期0.1徐珊First Draft2011-9-14审核记录姓名职务签字日期LED跑马灯1.1 实验介绍GPIO即通用可编程输入输出口,在此我们通过GPIO编程实现一个跑马灯的实验。该跑马灯 实验是最简单,也是一般最先开始的一个实验,它可以搭建一个最小的工程项目,之后,所有的实验都可以建立在该项目之上 , 从而节省了在搭建过程中所消耗的时间和精力 。 所有的 GPIO 操作都是以跑马灯为基础进行的。1.2 实验目标 1. 理解固件库的结构2. 分析和学习固件库3. 灵活运用 GPIO 1.3 实验时间60分钟1.4 预备知识熟悉C语言知识,熟练MDK的使用1.5 实验步骤1.解压stm32f10x_stdperiph_lib.zip 可以从ST官方网站免费下载。本教程使用的标准库版本为 3.1.22.创建一个GPIO文件夹2.1 新建子文件夹User,用于存放用户源程序2.2 新建子文件夹Project,用户KEIL工程文件2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。3. 复制源代码到GPIO文件夹3.1 将stm32f10x_stdperiph_libSTM32F10x_StdPeriph_Lib_V3.1.2Libraries文件夹和Utilities文件夹整体复制到GPIO文件夹下。这就是ST的标准库,是以源代码形式提供的。3.2 将库中的演示代码GPIOlabsolutions4GPIO_fuctionUser中的文件复制到GPIOUser文件夹.4. 新建Keil MDK工程4.1 启动Keil MDK,点击菜单 New uVision Project,新建一个工程,命名为GPIO4.2 选择CPU类型为 STM32F107VC (这是MDV-STM32-107开发板采用的CPU类型)4.3 当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)4.4 根据自己的需要修改Target名字。(名字任意)4.5 为了便于代码管理,在这个Project下创建几个Group (名字可以任意)User : 存放用户自己写的源代码RVMDK : 存放启动文件(汇编文件)StdPeriph_Driver : 存放ST标准库外设驱动文件CMSIS : 存放CMSIS接口文件(这也是库的一部分)STM32_EVAL存放板集设备驱动文件4.6 创建好Group后,我们开始依次添加文件。4.6.1给User文件夹添加文件 路径: User文件夹4.6.2给RVMDK文件夹添加文件,路径:LibrariesCMSISCoreCM3startuparm启动文件路径:LibrariesCMSISCoreCM3startuparm4.6.3给stdPeriph_Driver文件夹添加文件设备驱动文件路径:GPIOLibrariesSTM32F10x_StdPeriph_Driversrc4.6.4给CMSIS文件夹添加文件CMSIS接口文件路径:GPIOLibrariesCMSISCoreCM34.6.5给STM32_EVAL文件夹添加文件STM32_EVAL接口文件路径: UtilitiesSTM32_EVAL5. 修改源代码。我们将修改main.c 文件,换成我们自己跑马灯程序。/*version:v1.0author:sky*/* 头文件 -*/#include stm32f10x.h#include stm32_eval.h/* Private function prototypes -*/void RCC_Configuration(void);void Delay(_IO uint32_t nCount);int main(void) / 主函数 /* 系统始终配置 */ RCC_Configuration(); /* 初始化LED*/ STM_EVAL_LEDInit(LED1); 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 STM_EVAL_LEDOff(LED1); /熄灭LED1 Delay(0x3FFFFF); STM_EVAL_LEDOn(LED3); /点亮LED3 STM_EVAL_LEDOff(LED2); /熄灭LED2 Delay(0x3FFFFF); STM_EVAL_LEDOn(LED4); /点亮LED4STM_EVAL_LEDOff(LED3); /熄灭LED3 Delay(0x3FFFFF);STM_EVAL_LEDOff(LED4); /熄灭LED4 /*始终配置*/void RCC_Configuration(void) /* Setup the microcontroller system. Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variable. */ SystemInit();/*延时函数 */void Delay(_IO uint32_t nCount) for(; nCount != 0; nCount-);6. 配置工程, 点击“Options”按钮6.1 切换到Output。选择Object文件夹。在Create Hex File 前打钩。6.2 切换带Listing。选择Listings文件夹6.3 切换到C/C+ 添加两个预编译宏USE_STDPERIPH_DRIVER, STM32F10X_CL, USE_STM3210C_EVAL,LCD_Debug (这是ST库用到了这两个宏) 修改Includes路径6.4 切换到Debug 选择硬件调试器(缺省是软件仿真),我们选择Cortex-M/R J-LINK/J-Trace调试器 在 Run to main前打钩6.4 切换到Utilities 选额调试器类型,我们选择Cortex-M/R J-LINK/J-Trace 点settings按钮,添加Flash编程算法,我们选择STM32连接型器件,Flash容量256K字节7. 配置工程完毕。下面开始编译。8. 编译OK,按开发板Reset键开始运行。9. 教程结束。(注:本GPIO应用还有一个小实验,请自己仿照以上方法完成)实验代码如下:1、通过使用固件库配置GPIO引脚的模式控制法 /* Includes -*/#include stm32f10x.h/#include stm32_eval.h/* Private typedef -*/* Private define -*/* Private macro -*/* Private variables -*/GPIO_InitTypeDef GPIO_InitStructure; /定义GPIO初始化结构体/* Private function prototypes -*/void RCC_Configuration(void);void Delay(_IO uint32_t nCount);int main(void) /主函数 /* System Clocks Configuration */RCC_Configuration(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); /外设时钟配置,开启GPIOB和GPIOD的时钟 /GPIO_InitTypeDef GPIO_InitStructure; /定义GPIO初始化结构体GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_7|GPIO_Pin_13; /管脚位置定义,标号可以是NONE、ALL、0至15。GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz; /输出速度2MHzGPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /推挽输出模式 Out_PPGPIO_Init(GPIOD,&GPIO_InitStructure); /E组GPIO初始化 /RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,DISABLE); /外设时钟配置,开启GPIOB和GPIOD的时钟 while (1) /*=LED1-ON=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_SetBits(GPIOD , GPIO_Pin_13);GPIO_SetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED12-ON=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_ResetBits(GPIOD, GPIO_Pin_13);GPIO_SetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED123-ON=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_ResetBits(GPIOD , GPIO_Pin_13);GPIO_ResetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED1234-ON=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_ResetBits(GPIOD , GPIO_Pin_13);GPIO_ResetBits(GPIOD , GPIO_Pin_3);GPIO_ResetBits(GPIOD, GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED1234-OFF=*/GPIO_SetBits(GPIOD , GPIO_Pin_7);GPIO_SetBits(GPIOD , GPIO_Pin_13);GPIO_SetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff); /* * brief Configures the different system clocks. * param None * retval None */void RCC_Configuration(void) /* Setup the microcontroller system. Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variable. */ SystemInit();/* * brief Inserts a delay time. * param nCount: specifies the delay time length. * retval None */void Delay(_IO uint32_t nCount) for(; nCount != 0; nCount-);1.6 结论1.7 问题1、 简述GPIO端口位的基本结构2、 简述
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医养结合养老机构2025年运营环境优化与安全监管策略报告
- 2025年乡村旅游基础设施提升与乡村旅游产业融合研究报告
- 不良资产处置行业市场趋势分析报告:2025年创新模式市场布局策略
- 个人养老金制度下2025年金融市场创新产品与服务投资机遇报告
- 2025年中央空调行业当前发展现状及增长策略研究报告
- 学习基础知识培训课件报道
- 2025年江苏特色小镇行业当前市场规模及未来五到十年发展趋势报告
- 2025年中成药行业当前竞争格局与未来发展趋势分析报告
- 报关员年度工作总结
- 司法工作年度总结
- 原材料采购制度
- 员工能力提升计划协议书(2篇)
- 工程项目施工场地移交协议书
- 2025年公共基础知识多选题库及答案(共100题)
- 2025年医院食堂肉类供应合同书
- 2025年设计顾问技术服务合同模板
- 实验试剂耗材供应服务方案
- 初三下学期英语项目式学习方案
- 2025年度美团外卖配送员招聘合同范本
- 2025年度物流运输应急演练计划
- 有害物质管控标准
评论
0/150
提交评论