简单介绍GPIO

GPIO是通用输入输出的简称,用于STM32单片机的引脚控制,实现通信和控制功能。GPIO硬件包括I/O引脚、保护二极管、上下拉电阻等,支持多种模式如模拟输入、浮空输入、推挽输出和开漏输出。GPIO模式包括输入和输出,输出模式下推挽和开漏输出有不同工作方式。文章详细介绍了GPIO的各种寄存器,如模式寄存器、输出类型寄存器、速度寄存器等,用于配置GPIO状态。
摘要由CSDN通过智能技术生成

目录

GPIO简介

GPIO硬件解析

 GPIO模式

输入模式

输出模式​编辑

GPIO常用寄存器介绍

IO端口A时钟使能寄存器(RCC_IOPENR)

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

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

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

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

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

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

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

端口位复位寄存器 (GPIOx_BRR) (x=A..G)


GPIO简介

        GPIO是通用型输入输出的简称,简单的说其实就是STM32单片机额的可控制引脚STM32的GPIO引脚与外部设备连接起来,实现外部通信,控制以及数据采集的功能;GPIO被分为很多组,每组有16个引脚编号为0~15,例如STM32G030C8来说,引脚分为了GPIOA,GPIOB,GPIOC,GPIOD,GPIOF,以及其他引脚;所有的GPIO引脚都具备基本输入输出功能。

        最基本的输出功能由STM32控制引脚输出高、低电平,实现开关控制;

        最基本的输入功能是检测外部电平,通过引脚上电平的高低来确定按键是否被正常按下。

GPIO硬件解析

        STM32芯片GPIO接口内部原理

      

 注释:

I/O引脚:接收外部发出的信号或者向外部发出信号

保护二极管:

        VDD:用来限制IO引脚输入或输出过高电压,当输入或输出电压过高时,保护二极管VDD则导通

        VSS:同VDD,但是他的作用是当输入或输出电压过低时,保护二极管VSS导通

   上下拉电阻:

        当VDD开关处于闭合状态,VSS开关处于打开状态时,整个电路处于上拉输入状态

        当VDD开关处于打开状态,VSS开关处于闭合状态时,整个电路处于下拉输入状态

        当VDD开关处于打开状态,VSS开关处于打开状态时,整个电路处于浮空输入状态

        通常情况下设置模拟输入模式或者复用功能输入模式,VDD开关和VSS开关均设置为打开状态

P-MOS、N_MOS:

        P-MOS、N-MOS在这里用于控制输出状态,分别为开漏输出和推挽输出

        当电路处于推挽输出状态时P-MOS、N-MOS均处于有效电路,且P-MOS 输出0时电路导通, N-MOS 输出1时导通,反之不成立

        当电路处于开漏输出状态时P-MOS处于失效状态,且N-MOS输出1时处于导通状态

 GPIO模式

typedef enum
 {
 	GPIO_Mode_AIN = 0x00,          // 模拟输入
 	GPIO_Mode_IN_FLOATING = 0x04,  // 浮空输入
 	GPIO_Mode_IPD = 0x28,          // 下拉输入
 	GPIO_Mode_IPU = 0x48,          // 上拉输入
 	GPIO_Mode_Out_OD = 0x14,       // 开漏输出
 	GPIO_Mode_Out_PP = 0x10,       // 推挽输出
 	GPIO_Mode_AF_OD = 0x1C,        // 复用开漏输出
 	GPIO_Mode_AF_PP = 0x18         // 复用推挽输出
 } GPIOMode_TypeDef;

输入模式

在输入模式时,施密特触发器打开,输出被禁止,可以挺过输入数据寄存器GPIOx_IDR读取I/O状态,其中输入模式可以氛围上拉、下拉、浮空和模拟输入中,上下拉输入这里就不再解释了;所谓浮空输入就是指输入的电平是不确定的,完全由外部输入所决定,一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值