单片机基础(STM32-DAY2(GPIO))

什么是GPIO?

GPIO 全称是 General Purpose Input/Output,即通用输入输出端口。

是单片机/微控制器上最基础、最常用的功能模块之一。

每个GPIO引脚都可以被配置为输入或输出,用于与外部世界进行数字信号的交互。

1.GPIO框架图

通用框图F1系列:

1.1 解释图中一些元器件

这一部分不懂很正常,搭配后面的操作看。

**引脚:**引脚就是单片机芯片上我们常见的四周的小金属,像单片机的脚一样,是单片机和外设进行交流的通道

**单片机片内外设:**集成在单片机芯片内部的各种功能模块,图中引脚左边的输入输出功能都是单片机内部处理的,所以引脚以左就是单片机内部

**Vcc:**接入电路的电压

**Vdd:**元器件内部的工作电压

**Vss:**公共接地端电压

**保护二极管:**单向的二极管,配合VDD和VSS保证电流控制在有效电压范围

**上拉电阻:**就是电阻,防止电流太大
**施密特触发器:**把不稳定的电信号波整型成电路能处理的方波波型,如图

**输出控制:**输出控制内有一个反向器,把低电平转换成高电平,高电平转换成低电平

P型MOS管(PMOS): 当输出数据寄存器输出'0'-------》输出控制把'0'转换成 '1'-----》NMOS管打开 输出低电平

N型MOS管(NMOS): 当输出数据寄存器输出'1'-------》输出控制把'1'转换成 '0'-----》NMOS管打开 输出高电平

2.工作模式

1.输入模式

1.1. 浮空输入(Floating Input)
概念

(1) I/O引脚没有连接上拉或下拉电阻,也没有外部信号输入。(就是上拉电阻和下拉电阻处的开关都没有联通,直接存取。这个时候信号很容易不稳定)

(2) 引脚电平不确定,容易受外界干扰,可能随机跳变高低电平。

特点

(1) 高阻抗状态,对外部电路几乎没有影响。

(2) 不推荐将引脚长期设为浮空输入,容易引起误动作或功耗增加。

应用

(1) 仅在有外部信号源(如按键、传感器)时使用。

(2) 不建议悬空不用的引脚设为浮空输入。

1.2. 上拉输入(Pull-up Input)
概念

(1) I/O引脚内部或外部连接一个上拉电阻到Vdd(高电平)。

(2) 当没有外部信号时,电阻会把引脚电平拉到高电平。(相当于上面接一个电源,持续联通单片机内部,输入高电平Vdd)

特点

(1) 防止引脚悬空,默认高电平。

(2) 常用于按键检测(按下为低,松开为高)、I²C等场合。

应用

(1) 按键输入(常开按键一端接地)

(2) I²C总线

(3) 需要默认高电平的输入

1.3. 下拉输入(Pull-down Input)
概念

(1) I/O引脚内部或外部连接一个下拉电阻到GND(低电平)。

(2) 当没有外部信号时,电阻会把引脚电平拉到低电平。(外部没有信号的时候,内接Vss低电压,保持低电平)

特点

(1) 防止引脚悬空,默认低电平。

(2) 用于需要默认低电平的输入场合。

应用

(1) 按键输入(常闭按键一端接Vcc,较少用)

(2) 需要默认低电平的输入

1.4. 模拟输入(Analog Input)
概念

I/O引脚连接到ADC(模数转换器)模块,用于采集外部的连续模拟信号(如电压、电流、传感器输出等)。

特点

(1) 输入信号是连续的电压值,不是单纯的高低电平。

(2) 不能配置为上拉/下拉/浮空,通常为高阻抗输入。

应用

(1) 采集温度、光照、音频等模拟信号(因为信号不只是单纯的高低电平,而是要显示具体数据,需要直接采集复杂的电信号)

(2) 电位器、传感器等模拟量输入

2.输出模式

2.1. 推挽输出(Push-Pull Output)
原理

(1) 推挽输出结构由一个P型MOS管(PMOS)和一个N型MOS管(NMOS)组成。

(2) 输出高电平时,PMOS导通,NMOS关断,引脚被拉到Vcc。

(3) 输出低电平时,NMOS导通,PMOS关断,引脚被拉到GND。

(4) 不能同时导通,防止短路。

特点

(1) 可以主动输出高电平和低电平。

(2) 驱动能力强,响应速度快。

(3) 适合直接驱动LED、蜂鸣器等负载。

应用场景

(1) 普通数字信号输出

(2) 需要大电流驱动的场合

(3) SPI、UART等总线

2.2. 开漏输出(Open-Drain Output)
原理

(1) 只用NMOS管(或NPN三极管),没有PMOS。

(2) 输出低电平时,NMOS导通,引脚被拉到GND。

(3) 输出高电平时,NMOS关断,引脚为高阻态(悬空),需要外部上拉电阻拉到高电平。

特点

(1) 只能主动输出低电平,不能主动输出高电平。

(2) 需要外部上拉电阻,才能输出高电平。

(3) 多个开漏输出可以直接并联,实现"线与"功能(有任意一个为低,输出就为低)。

应用场景

(1) I²C总线(多主多从,需线与功能)

(2) 外部中断输入

(3) 需要与不同电压系统通信时(如3.3V与5V系统)

2.3. 总结对比

特性 推挽输出 开漏输出
输出高电平 主动输出 需上拉电阻
输出低电平 主动输出 主动输出
高阻态
并联线与 不支持 支持
驱动能力 取决于上拉电阻
应用 普通IO/驱动负载 I2C/中断/多机通信
相关推荐
LCG元7 小时前
STM32项目实战:基于STM32F103的智能农业监控系统
stm32·单片机·嵌入式硬件
ACP广源盛139246256737 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
一起搞IT吧8 小时前
Android性能系列专题理论之十:systrace/perfetto相关指标知识点细节含义总结
android·嵌入式硬件·智能手机·性能优化
Truffle7电子9 小时前
STM32CubeIDE/Programmer/Touch GFX 应用
stm32·单片机·嵌入式硬件
constant_LDX10 小时前
步进电机开发(一、硬件设计)
单片机·嵌入式硬件
北山有鸟10 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu2025100110 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
Deitymoon10 小时前
STM32——串口通信(USART)
单片机·嵌入式硬件
iCxhust10 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
Deitymoon12 小时前
STM32——外部中断按键控制led
stm32·单片机·嵌入式硬件