- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 如何点亮一个LED
实验目的
掌握STM32F103通用GPIO口作为推挽输出使用的设置步骤;
掌握STM32 F103通用GPIO各个寄存器的作用;
掌握控制STM32通用GPIO输出状态的方法;
实验内容
在实验1的基础之上新建LED.h、delay.h、LED.c、delay.c实现LED1、LED2、LED3、LED4周期性的亮和灭。
预备知识
C语言基本知识;
STM32 GPIO工作方式;
STM32时钟树结构;
STM32通用GPIO寄存器。
实验设备及工具
硬件:PC机、STM32开发板、JLINK_V8仿真器;
软件:KEIL MDK4.12、JLINK_V8驱动。
实验原理及说明
板载LED原理图:
配套的STM32开发板配备4个LED,原理图如下图所示:
发光二极管的阴极接入GPIO,如果将GPIO置低则LED亮起,如果将GPIO置高则LED熄灭。
STM32通用GPIO工作模式:
STM32 的 IO 口可以由软件配置成 8 种模式:
输入浮空
输入上拉
输入下拉
模拟输入
开漏输出
推挽输出
推挽式复用功能
开漏复用功能
每个 IO 口可以自由编程,单IO口寄存器必须要按 32 位字被访问。 STM32 的很多IO口都是5V兼容的,这些 IO 口在与 5V 电平的外设连接的时候很有优势,具体哪些 IO 口是 5V 兼容的,可以从该芯片的数据手册管脚描述章节查到( I/O Level 标 FT 的就是 5V 电平兼容的)。
STM32端口IO寄存器简介
STM32 的每个IO端口都有7个寄存器来控制。他们分别是:
配置模式的 2个32 位的端口配置寄存器 CRL 和 CRH;
2个32 位的数据寄存器 IDR 和 ODR;
1个32 位的置位/复位寄存器BSRR;
1个 16 位的复位寄存器 BRR;
1个32 位的所存寄存器 LCKR;
这里我们仅介绍常用的几个寄存器,我们常用的 IO 端口寄存器只有4个:CRL、CRH、IDR、ODR。
端口配置低寄存器(GPIOx_CRL) (x=A..E):
通过此寄存器配置GPIOx(x=A/B../G)的低8位IO的工作模式和输出速度,上电默认值是0x4444 4444即复位默认浮空输入模式;CRH控制GPIOx(x=A..E)的高8位IO功能与CRL相同。其详细描述如下:
端口输出数据寄存器(GPIOx_ODR) (x=A..E):
此寄存器控制GPIO端口的状态,通过置1和置0来控制IO口状态。其详细描述如下:
IDR 是一个端口输入数据寄存器,只用了低 16 位。该寄存器为只读寄存器,并且只能以16 位的形式读出。该寄存器各位的描述如下图所示:
要想知道某个IO口的状态,你只要读这个寄存器,再看某个位的状态就可以了。使用起来是比较简单的。
程序流程
实验步骤
拷贝实验1工程模板并保存在..\STM32工程文件目录下重命名为“实验2点亮LED”;
新建LED.c、LED.h、delay.c、delay.h并保存在“实验2点亮LED ”..\bsp目录下。
修改“实验2点亮LED ”Project目录下的KEIL工程文件并重命名为“LED.uvproj”
打开工程文件并进行如下修改
添加工程文件如下:
修改includes.h
#ifndef __INCLUDES_H__
#define __INCLUDES_H__
#include stm32f10x.h
#includeApplication.h
#includeLED.h
#includedelay.h
#endif
修改LED.h
#ifndef __LED_H__
#define __LED_H__
/*LED_1相关*/
#define LED1_OFF GPIOB-ODR|=(110)
#define LED1_ON GPIOB-ODR=~(110)
/*LED_2相关*/
#define LED2_OFF GPIOE-ODR|=(114)
#define LED2_ON GPIOE-ODR=~(114)
/*LED_3相关*/
#define LED3_OFF GPIOE-ODR|=(112)
#define LED3_ON GPIOE-ODR=~(112)
/*LED_4相关*/
#define LED4_OFF GPIOE-ODR|=(110)
#define LED4_ON GPIOE-ODR=~(110)
/*初始化函数*/
void LED_Init(void);
extern uint8_t LED_Status[5];
#endif
修改LED.c
#includeincludes.h
/*
------------------------
您可能关注的文档
- 立式光学计测量尺寸公差实验-实验室指导书1206.doc
- 热敏电阻计算公式:Rt.doc
- 三相异步电动机的定子电路和转子电路.doc
- 数据结构复习要求.doc
- 信号处理及应用实验说明书(1).doc
- 信号处理及应用实验说明书(2).doc
- 信号处理及应用实验说明书(3).doc
- 信号处理试卷及答案 试卷二.doc
- 信号处理试卷及答案 试卷七.doc
- 信号处理试卷及答案 试卷三.doc
- 福建省邵武市四中学片区达标名校2024届中考化学最后一模试卷含解析.doc
- 山东省临沂市沂南县重点达标名校2024届中考适应性考试化学试题含解析.doc
- 2024届浙江省嘉兴地区达标名校中考猜题化学试卷含解析.doc
- 2024届山东省菏泽市单县市级名校中考化学最后一模试卷含解析.doc
- 上海市建平西校2024届中考适应性考试化学试题含解析.doc
- 江苏省南京市六校联考2024年中考联考化学试卷含解析.doc
- 江苏省扬州市江都区城区重点名校2024届中考考前最后一卷化学试卷含解析.doc
- 郑州二中学2024届中考化学五模试卷含解析.doc
- 2024届湖南省张家界市永定区重点中学中考化学最后冲刺模拟试卷含解析.doc
- 河北省石家庄市43中学2024年中考化学模拟试题含解析.doc
文档评论(0)