物联网之STM32开发二(GPIO口操作)

发布者:Whisper123最新更新时间:2019-09-25 来源: eefocus关键字:物联网  STM32开发  GPIO口操作 手机看文章 扫描二维码
随时随地手机看文章

STM32—GPIO操作(基于STM32F051开发板)

内容概述:

GPIO的基本概念及寄存器介绍


照亮电子世界的那盏灯——LED寄存器版


照亮电子世界的那盏灯——LED库函数版


初识人机交互——按键


GPIO的基本概念及寄存器介绍:

内容概述:


GPIO接口简介


GPIO功能复用


GPIO寄存器介绍


GPIO接口简介:


通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。


GPIO功能复用:《 STM32F0数据手册》可以方便查看(P29-P30)


手册下载链接:https://pan.baidu.com/s/1FTYOR_MuwWyWnZSVDXoPzg 密码:mg63

GPIO寄存器介绍:


STM32F051-GPIO常用寄存器:(下文会具体介绍)


    4个32位配置寄存器 


        GPIOx_MODER(端口模式寄存器),  GPIOx_OTYPER(端口输出类型寄存器),  GPIOx_OSPEEDR(输出速度寄存器),    GPIOx_PUPDR(上拉 / 下拉寄存器)


    2个32位数据寄存器


        GPIOx_IDR(输入数据寄存器) 、GPIOx_ODR(输出数据寄存器)


    1 个32 位置位 / 复位寄存器


        GPIOx_BSRR(置位 / 复位寄存器)


    2 个 32 位复用功能配置寄存器


        GPIOx_AFRH (复用功能高位寄存器)、GPIOx_AFRL(复用功能低位寄存器)


注:每一组GPIO端口都有一套上述的寄存器去配置它自己的功能


GPIO寄存器MODER(端口模式寄存器):

                                              

GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..D,F)    


偏移地址: 0x00    


复位值:  


●  0x2800 0000 端口 A  


●  0x0000 0000 其他口


GPIO寄存器OTYPER(端口输出类型寄存器):

                                 

GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x = A..D,F)  


偏移地址: 0x04  


复位值: 0x0000 0000


GPIO工作原理框图:

GPIO寄存器OSPEEDR(输出速度寄存器):

                                                 

GPIO 口输出速度寄存器 (GPIOx_OSPEEDR) (x = A..D,F)      


偏移地址: 0x08      


复位值: 0x0000 0000


GPIO寄存器PUPDR(上拉 / 下拉寄存器):

                                                  

GPIO 口上拉 / 下拉寄存器 (GPIOx_PUPDR) (x = A..D,F)      


偏移地址: 0x0C      


复位值:    


● 0x2400 0000 端口 A    


● 0x0000 0000 其它端口

GPIO寄存器IDR(输入数据寄存器):

                                     

GPIO 端口输入数据寄存器 (GPIOx_IDR) (x = A..D,F)      


偏移地址: 0x10      复位值: 0x0000 XXXX (X 表明不定 )


GPIO寄存器ODR(输出数据寄存器):

                                      

GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A..D,F)      


偏移地址: 0x14      复位值: 0x0000 0000


GPIO寄存器BSRR(置位 / 复位寄存器):

                                              

GPIO 端口置位 / 复位寄存器 (GPIOx_BSRR) (x = A..D,F)      


偏移地址: 0x18      复位值: 0x0000 0000


GPIO寄存器AFRL(复用功能低位寄存器):

                                       

GPIO 复用功能低位寄存器 (GPIOx_AFRL) (x = A..B)      


偏移地址: 0x20       复位值: 0x0000 0000


GPIO寄存器AFRH(复用功能高位寄存器):

                                  

GPIO 复用功能高位寄存器 (GPIOx_AFRH) (x = A..B)      


偏移地址: 0x24       复位值: 0x0000 0000


照亮电子世界的那盏灯——LED寄存器版

内容概要:


硬件原理图分析


编程步骤分析


编程实例操作


硬件原理图分析:

使能GPIO的时钟:

AHB 外部时钟使能寄存器 (RCC_AHBENR)    


偏移地址 : 0x14    


复位值 : 0x0000 0014    


访问:无等待周期,字,半字和字节访问


编程步骤分析:


开启GPIOB的时钟

RCC->AHBENR  |=  1<<18;            

 

配置PB0 PB1 PB2接口   

GPIOB->MODER |= (1<<0)|(1<<2)|(1<<4);    //设置PB0, PB1, PB2为通用输出模式

GPIOB->OTYPER = 0x0;    //设置PB0, PB1, PB2为通用推挽输出

GPIOB->OSPEEDR = 0x0;   //设置输出速度为低速

 

控制LED

GPIOB->BSRR = (1<<16)|(1<<17)|(1<<18);     //复位PB0, PB1, PB2 既点亮LED

GPIOB->BSRR = (1<<0)|(1<<1)|(1<<2);    //置位PB0, PB1, PB2 既熄灭LED

照亮电子世界的那盏灯——LED库函数版

内容概要:


硬件原理图分析


CubeMX配置


编程实例操作


硬件原理图分析:

CubeMX的配置:

初始化关键代码分析:


GPIOB初始化

 

void MX_GPIO_Init(void)

{

  GPIO_InitTypeDef GPIO_InitStruct;

 

__HAL_RCC_GPIOB_CLK_ENABLE();   //使能GPIOB的时钟

GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2; //初始化对象为0, 1, 2号管脚

  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //模式为推挽输出

  GPIO_InitStruct.Pull = GPIO_NOPULL;    //没有上拉

  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;    //低速

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);    //配置好后开始初始化

}

控制LED关键代码分析:


复位PB0, PB1, PB2 既点亮LED

HAL_GPIO_WritePin(GPIOB,  GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);

 

置位PB0, PB1, PB2 既熄灭LED

HAL_GPIO_WritePin(GPIOB,  GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);

初识人机交互——按键

内容概要:


硬件原理图分析


CubeMX配置


编程实例操作


硬件原理图分析:

CubeMX的配置:

STM32F0硬件:

编程实例操作:按下按键灯的状态会进行翻转


while (1)

  {

while(!HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8)); //判断按键是否按下

HAL_Delay(20);  //延时消抖

while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8));  //再次判断按键是否还是按下状态

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2); //使灯翻转(亮灭)

while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8));  //判断按键是否抬起

HAL_Delay(20);   //延时消抖

  }

关键字:物联网  STM32开发  GPIO口操作 引用地址:物联网之STM32开发二(GPIO口操作)

上一篇:STM32的LL库函数——GPIO
下一篇:STM32 入门导入 第一篇 GPIO操作的步骤

推荐阅读最新更新时间:2024-11-06 16:28

STM32开发教程 基于PAJ7620传感器模块的手势识别驱动详解
1.简介 PAJ7620是ALIENTEK推出的一款高性能手势识别传感器模块。该模块采用原相科技(Pixart)公司的 PAJ7620U2芯片,芯片内部集成了光学数组式传感器,以使复杂的手势和光标模式输出,自带九种手势识别,支持上、下、左、右、前、后、顺时针旋转、逆时针旋转和挥动的手势动作识别,以及支持物体接近检测等功能。 PAJ7620模块驱动时序为IIC时序,本次实验我们通过硬件IIC来完成手势识别功。 PAJ7620 内部自带了 9 个手势识别,分别是“上”、“下”、“左”、“右”、“前”、“后”、“顺时针旋转”、“逆时针旋转”、“挥动”。 使用时传感器的开窗口位置需朝上,如图所示: 手在传感器的上方,保持与传感器的垂直
[单片机]
<font color='red'>STM32</font><font color='red'>开发</font>教程 基于PAJ7620传感器模块的手势识别驱动详解
意法半导体STM32全系产品部署Microsoft® Azure RTOS开发
STM32Cube工具和扩展包为从入门级到高性能的MCU提供专用Azure RTOS高质量中间件 2022 年6月 8日,中国 —— 意法半导体在 STM32Cube 开发环境中扩大对Microsoft® Azure RTOS的支持范围,涵盖STM32产品家族中更多的高性能、主流、超低功耗和无线微控制器 (MCU)。 用户可以利用Azure RTOS的特质、STM32Cube的便利性,以及STM32系列优化微控制器特性的灵活性,在拥有700余款微控制器的STM32 Arm® Cortex®-M 产品组合中来优化微控制器的性能。在本次范围扩大之后,所有的STM32G0主流产品线,STM32L4、STM32L4+、STM
[嵌入式]
意法半导体<font color='red'>STM32</font>全系产品部署Microsoft® Azure RTOS<font color='red'>开发</font>包
亚马逊推出第一个云计算_物联网下大数据的转换战略
亚马逊推出第一个云计算服务的时候,外界并没有看好这个方向,高投入、低利润且存在很多的不确定性。 但在2008年10月,《经济学人》破天荒的用一整期内容来讨论云计算,很有预见性的写下了这样一句话:“这无疑将改变信息技术(IT)产业,也将深刻改变人们工作和公司经营的方式。”尽管里面的很多内容将今天的互联网服务和云计算混为一谈,却也刷新了很多企业对于云计算的认知。 时任微软CEO史蒂夫.鲍尔默在华盛顿大学的演讲中提出了这样的口号:For the cloud, we’re all in;随后Google Cloud发布,IBM、甲骨文、阿里巴巴、腾讯、百度、华为……全球几乎所有重量级的互联网或IT巨头均开始发力云计算。 直到今
[物联网]
日本ET加入IoT元素 Ayla物联网平台受注目
第31届嵌入式技术综合展Embedded Technology 2017加入了今年迈入第三届的物联网技术总合展IoT Technology后,不少新创的物联网相关公司参展,其中拥有台湾魂的美商物联网平台供应商Ayla Networks备受关注。   科技联网的趋势从早期的个人电脑(PC)连网,发展到手机连网,现在进入万“物”互连的时代,而这物与物之间的连结,不是什么多么难以想像的,简单到每天都用到且随手可即的家电产品,未来都可以根据使用者习性来互相沟通,而Ayla Networks就是一家物联网平台供应商,也是B2B平台即服务(PaaS)提供商,针对许多智能家电来量身订做适合的解决方案。   Ayla Networks广泛与产品系
[网络通信]
罗伯特·卡恩合作建立全球协调的物联网系统
  中国国家主席习近平在致第四届世界互联网大会的贺信中说,中国数字经济发展将进入快车道。美国计算机科学家、图灵奖获得者、“互联网之父”罗伯特·卡恩认为,互联网解决了人与电脑的连接问题, 物联网 将让世界万物连接在一起,中国将在其中发挥着重要作用。如果能够合作建立全球协调的 物联网 系统,将创造出新一代的创造性架构,为所有人创造更好的生活。下面就随网络通信小编一起来了解一下相关内容吧。     物联网 孕育着巨大可能   新京报:你提出的“数字物体”互联网系统是什么?   罗伯特·卡恩:互联网在几十年前出现时,希望实现电脑与电脑的连接,所以我们当时使用IP来实现电脑之间的数据传输和互动,而我们今天更多地处理信息,我们称之为数
[网络通信]
汽车企业:发力车载物联网逆袭成“主角”
     智能汽车是本届CES的一大亮点,这似乎在大会召开之前就已经是一个公认的事实。然而,只有当《每日经济新闻》记者亲眼看到这些“五花八门的汽车”时,才真正理解到,为啥业内都在感慨——CES之后,再无车展。 就此次展会各大主流汽车制造商、系统提供商等的新举动来看,或许暗示我们,未来人类跟汽车的关系将不再局限于道路这个实在的“网络”,虚拟的互联“网络”也将成为人车交互的新节点,人与车的关系将被重塑,道路上的车将不再是一辆单纯的车了。 软件商跨界为整车供“大脑” 本届CES上,在智能手机亮点“乏善可陈”的同时,汽车企业则可谓是蛮拼的!车企在展会上发布了大量基于车联网的新品。《每日经济新闻》记者在现场看到,在主场
[手机便携]
中国物联网产业盈利、芯片等问题尚待解决
集微网消息,物联网时代的到来,可能比你想象的还要快。 “全球物联网产业规模由2008年500亿美元增长至2018年近1510亿元美元。”近日,中国信息通信研究院发布的《物联网白皮书(2018)》(以下简称白皮书)指出。 而在中国,物联网的发展甚至更快,数据显示,预计2018年中国物联网行业的市场规模将达到2.05万亿元,而到2022年市场规模将达到7.24万亿元。 物联网的发展规模比你看到的要多得多 从500亿美元到1510亿美元,是哪些项目支撑了如此庞大的产业规模? 白皮书指出,物联网的应用主要分为消费物联网和产业物联网,消费物联网无需赘言,而产业物联网则涉及工业、能源、交通、物流、医疗、教育等行业。 据
[手机便携]
智能家居有哪些技术特征
智能家居是物联网在家居环境中的具体应用,因此智能家居也具有与物联网应用相似的特征。而从技术方面来说,智能家居的特征有三个,具体信息如下。 智能家居的三个技术特征 1、对实时响应要求高 智能家居的许多应用对实时响应要求很高,如检查发现有煤气泄漏、火灾、房屋水管漏水、房屋被入侵等情况,就需要立即响应,做出相应的行为。如果不能实现实时响应,会造成严重的后果和损失。如果响应时间过长,就会使消费者的用户体验度变差,不利于智能家居的推广。 2、强调智能化应用 智能家居强调的是智能化应用,智能化应用体现在多个层次。 较低层次的智能化,比如改变家电控制的方式,可以采用手机控制,还可以通过声音控制;较高层次的智能化,可以设置控制模式,通过软
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved