单片机基础(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/中断/多机通信