实验1 LED点亮实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1 LED点亮实验

实验一 LED点亮实验 广州粤嵌通信科技股份有限公司 作者 Lemon Tea 日期 2015-01-26 版本 Rev1.0 实验一 LED点亮实验 实验目的 了解STM32库函数的开发流程; 初步调用库函数配置GPIO输出; 实验设备 装有MDK软件,并带有下载驱动电脑一台; 粤嵌STM32开发板 1个,USB 线1根 实验内容 1、打开MDK软件,按照教程,添加相应的库函数文件,建立工程; 2、编写led.h头文件,led.c引脚配置文件和主函数main.c,编译工程,解决错误,生成HEX文件; 3、连接跳线帽J3,下载程序并观看PA0,PA1和PA2控制的三个LED状态; 实验原理 本实验是控制LED灯,要通过控制STM32芯片的I/O引脚(GPIO)电平的高低来实现,GPIO可分为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG等不同的组,每个端口分为0~15,共有16个不同的引脚。实验中用到的是STM32F103C8T6最小系统板,引出来的引脚有PA0~PA15、PB0~PB15,本实验用到PA0、PA1、PA2。 控制LED主要分为以下步骤: 定义一个GPIO_InitTypeDef类型结构体,结构体成员包括GPIO_Mode、GPIO_Speed、GPIO_Pin三个成员; 开启GPIO时钟,使用引脚时要开始相应的时钟,否则该引脚不工作,本实验开始GPIOA的时钟; 配置GPIO_Mode为普通推挽模式(GPIO_Mode_Out_PP),设置引脚的速率为50MHz,选择要控制的引脚,调用库函数初始化GPIOA,通过GPIO_SetBits函数设置引脚输出高电平,GPIO_ResetBits函数设置引脚输出低电平; 通过程序设置GPIO输出低电平,点亮LED。 5、 实验电路图 图1_1 LED电路图 引脚对应表:(本次要用到的LED1、LED2、LED3) LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 图1_2最小系统引脚图 (TXD2为PA2、RXD2为PA3、RXD1为PA10、TXD1为PA9) 6、 实验程序实现 点亮LED实验程序 Main.c #include stm32f10x.h #include led.h int main(void) { LED_GPIO_Config();//初始化LED端口 GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2); //GPIO_ResetBits拉低电平 点亮LED } Led.c #include stm32f10x.h #include led.h //LED端口配置函数 void LED_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure;//定义一个GPIO_InitTypeDef类型的结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //开启GPIOA外设时钟 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 设置普通推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置引脚速率为50MHz GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//选择要控制的引脚PA0 GPIO_Init(GPIOA,GPIO_InitStructure);//调用库函数,初始化GPIOA GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//选择要控制的引脚PA1 GPIO_Init(GPIOA,GPIO_InitStructure);//调用库函数,初始化GPIOA GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//选择要控制的引脚PA2 GPIO_Init(GPIOA,GPIO_InitStructure);//调用库函数,初始化GPIOA GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2); //拉高引脚电平 } Led.h #ifndef __LED_H #define __LED_H #include stm32f10x.h void LED_GPIO_Config(void

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档