GPIO输入输出

一、寄存器

是一种内存单元

是程序与硬件电路连接的桥梁,存储着芯片中特定功能电路的开关信息

可以通过程序,来改变芯片中某功能电路的开关 或 对寄存器数据进行读取,来获取芯片中某段功能电路的当前状态

(控制单片机,实际上就是控制寄存器)


二、GPIO内部结构图

保护二极管作用:
当有静电等瞬间电压波动进入I/O引脚时,将波动电压引入电源或GND吸收


三、GPIO输出模式

(1).推挽输出

P-MOS 与 N-MOS 协同工作

推挽输出具有一定的电压与电流驱动能力,可以直接驱动一些适合的元件工作,但只能输出固定电压3.3V

I/O口输出高电平时

P-MOS导通,N-MOS断开,I/O引脚与VDD连接,输出3.3V


I/O口输出低电平时

N-MOS导通,P-MOS断开,I/O引脚与VSS连接,输出0V


(2).开漏输出


只有 N-MOS 工作,P-MOS 一直处于断开状态,小灯另一端接所需的任意电压

注意:
使用5V容忍I/O,否则若输入电压大于3.3V时,保护二极管长期导通,将5V引入电源中,造成损坏

I/O口输出低电平时

N-MOS导通,I/O引脚与VSS连接,电压差形成,电流产生,小灯亮起


I/O口输出高电平时

N-MOS断开,整个I/O内部处于高阻态(断路)


(3).推挽与开漏区别


(4).复用推挽与复用开漏

芯片内部与片上外设同时控制会导致输出控制模块不知听谁的,STM32增加了复用功能


四、GPIO输入模式

(1).上拉输入

上拉电阻启用,下拉电阻关闭,I/O口无操作时,电平被拉高,GPIO口读取到的电平为高电平;当I/O口被输入电压时,电流跳过上拉电阻,通过施密特触发器判断读取到的电平为高电平还是低电平

(2).下拉输入

下拉电阻启用,上拉电阻关闭,I/O口无操作时,电平被拉低,GPIO口读取到的电平为低电平;当I/O口被输入电压时,电流跳过下拉电阻,通过施密特触发器判断读取到的电平为高电平还是低电平

(3).浮空输入

上拉、下拉电阻都不启用,内部处于高阻态,可以通过再外部接上拉或下拉电阻,实现与前面两种输入模式相同的效果,以按键为例:


(4).施密特触发器

由于现实中电压多以连续变换,可以规定一个参考电压,如:1.65V,高于此电压的就算高电平,低于此电压的就算低电平,使用比较器即可实现此效果

但若输入电压中噪声太多,再参考电压附近徘徊,则会导致高低电平快速变化,无法准确测得当前电平,使用施密特触发器,可以产生两个参考电压,当输入电压高于高参考电压则输出高电平,当输入电压低于低参考电压则输出低电平,在两者之间则维持原本的电平信号不变

(5).模拟输入

前面的上拉、下拉、浮空输入都读取高低电平,也就是数字信号。因而被称为“数字输入”
而模拟输入却是读取输入电压的具体数值,因而其在施密特触发器前便产生了分支,将电压引入了模拟输入相关的片上外设(如ADC)
 

六、作者寄语

本笔记根据keysking大佬的b站视频教程整理,视频链接附上:

【开漏? 推挽? 都是些什么鬼? 动画帮你一网打尽】【STM32教程-2023】第5集 关于STM32 GPIO内部的那些事_哔哩哔哩_bilibili

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东湖西泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值