GPIO的几种模式——以STM32为例

GPIO 八种状态 ,一般是指 STM32F1系列(如STM32F103)GPIO配置寄存器中的8种工作模式

一、GPIO模式及其分类

1、输出

**(1)浮空输入。**可读取引脚电平,若引脚悬空,则电平不确定。

**(2)上拉输入。**可读取引脚电平,内部连接上拉电阻,悬空时默认高电平。

**(3)下拉输入。**可读取引脚电平,内部连接下拉电阻,悬空时默认低电平。

**(4)模拟输入。**GPIO无效,引脚直接接入内部ADC。

2、输入

**(1)开漏输出。**可输出引脚电平,高电平为高阻态,低电平接VSS。

**(2)推挽输出。**可输出引脚电平,高电平接VDD,低电平接VSS。

**(3)复用开漏输出。**由片上外设控制,高电平为高阻态,低电平接VSS。

**(4)复用推挽输出。**由片上外设控制,高电平接VDD,低电平接VSS。

二、GPIO结构以及模式详解

先看GPIO内部框图:

1、输入模式

(1)浮空输入(Floating Input)

既不上拉,也不下拉。高阻态,完全由外部决定电平。主要应用:UART RX,外部数字信号输入。缺点:悬空时,电平不确定,随机跳变。

内部结构

(2)上拉输入(Pull-Up)

引脚默认高电平,外部接地变低电平。主要应用:按键输入,I2C。

内部结构

(3)下拉输入(Pull-Down)

引脚默认低电平,外部拉高变高电平。主要应用:状态检测。

内部结构

(4)模拟输入(Analog)

内部关闭施密特触发器和数字输入缓冲器,直接进入ADC。主要应用:ADC采样、电压检测、电流采样。

内部结构

2、输出模式

(5)推挽输出(Push-Pull)

既能输出高,也能输出低。主要应用:LED、继电器、普通数字输出。

内部结构

(6)开漏输出(Open Drain)

输出0导通,输出1,引脚悬空。主要应用:I2C、多机通讯。

内部结构

(7)复用推挽输出(AF Push-Pull)

GPIO控制权交给外设。如:TIM/SPI/USART。通过TIM输出PWM信号是最经典的应用.

(8)复用开漏输出(AF Open Drain)

GPIO控制权交给外设。主要是:I2C的SDA和SCL。

三、8种模式总结表

四、电机控制中的实际应用

相关推荐
wuyk5553 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
小僧景贤8 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网
2401_8275012811 小时前
【无标题】
arm开发·嵌入式硬件
LeoZY_12 小时前
LinkScope 使用笔记:基于 OpenOCD 的通用硬件芯片调试助手
笔记·单片机·嵌入式硬件·开源软件
星空真迷人14 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
iCxhust14 小时前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
hongmai66688814 小时前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
m0_4666077014 小时前
只用三步使用MCSDK6生成电机控制工程
stm32·电机控制
2301_8014349815 小时前
STM32F407移植TinyUSB
stm32·单片机·嵌入式硬件
Dlrb121116 小时前
Linux驱动---Linux 中断系统及其上与下半部的介绍与阻塞IO实现按键检测
linux·嵌入式硬件·imx6ull·中断·阻塞io