一文彻底解决stm32中GPIO的输入模式与输出模式

一.前言

很惭愧,工作前期只会看例程配置代码,对于这几种模式理解过于浅薄。

后来想了想,做事应该脚踏实地,尽可能把原理搞清楚。

这样,不仅仅是个人能力的提高,更是良好习惯的养成,知识理论大厦的搭建。

很喜欢一位博主的个签:日拱一卒,功不唐捐

希望大家在追梦路上,抬眼间尽是繁花,低眉时一片硕果。

木欣欣以向荣,泉涓涓而始流。

二.说明

本篇博客的截图来源于b站UP @小元实验室

没办法,人家的动画演示太清晰了,大家可以去看看。

上面两张图是我们学习GPIO输入输出模式的核心

只有深刻理解了上面两张图,我们的单片机学习之路将会一帆风顺

三.输入模式

输入模式分为 上拉输入,下拉输入,浮空输入,模拟输入。

3.1 模拟输入

模拟输入是指 IO 端口的模拟信号不经过施密特触发器,直接到偏上外设

3.2上拉输入

寄存器直接读取IO引脚的电平信号

输入1,读1;输入0,读0

上拉输入指 上拉电阻的开关闭合,下拉电阻的开关断开

这样,当IO引脚悬空时,会读出高电平

3.3下拉输入

寄存器直接读取IO引脚的电平信号

输入1,读1;输入0,读0

下拉输入指 下拉电阻的开关闭合,上拉电阻的开关断开

这样,当IO引脚悬空时,会读出低电平

3.4浮空输入

寄存器直接读取IO引脚的电平信号

输入1,读1;输入0,读0

浮空输入指 上下拉电阻的开关都断开

这样,当IO引脚悬空时,读出的电平信号不确定

3.5总结

四.输出模式

4.1推挽输出

这是推挽输出的结构图

数据寄存器可以直接写数据,送到输出控制

推挽输出的核心是这两个MOS管

想输出高电平时,P-Mos管导通,N-Mos管截止,IO引脚被拉高。

想输出低电平时,P-Mos管截止,N-Mos管导通,IO引脚被拉低。

推挽输出模式的驱动能力与芯片的IO电流特性有关!

STM32F407的最大IO端口驱动电流为25mA

STM32F407的最大IO端口总驱动电流为240mA

对于大功率外设,需要外置驱动电路

4.2开漏电路

开漏输出只有N-Mos管,没有P-Mos管。

想要输出低电平时,N-Mos管导通,IO引脚被拉低。

当N-Mos管截止时,内部电阻可以看成为无穷大,输出端口呈现高组态

想要输出高电平时,需要通过外部上拉电阻提供驱动输出

输出通常适用于电平不匹配的场合

例如stm32的输出电压时3.3V,想要输出5V

就可以设计如上电路

开漏输出支持线与特性

多个开漏输出引脚可以接在一起

只有当所有开漏输出引脚都输出高电平,最终的才会输出高电平。

只要有一个开漏输出引脚输出低电平,所有的开漏输出引脚就被拉低了。

4.3复用推挽输出

原理和推挽输出一样,只不过控制源来自于偏上外设

4.4复用开漏输出

4.5总结

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值