STM32 驱动开发学习一 GPIO口引脚工作模式配置

一、概述

GPIO为通用输入输出端口的简称,也可称为芯片引脚(不准确,因为芯片引脚不仅有GPIO一种),是微控制器于外设通讯的通道。不同的芯片GPIO的数量不同,但是相同的内核GPIO的基本电路组成于功能一致。通过软件控制GPIO的输入输出状态及使用模式,即可实现对应的需求功能。
STM32 的 IO 口可以由软件配置成如下 8 种模式:
1、 输入浮空
2、 输入上拉
3、 输入下拉
4、 模拟输入
5、 开漏输出
6、 推挽输出
7、 推挽式复用功能
8、 开漏复用功能
简而言之,如果想配置一个引脚具备输入功能可以选择配置模式为 浮空输入、上拉输入、下拉输入、模拟输入;如果想要配置一个引脚具备输出功能可以选择配置模式为 开漏输出、推挽输出;如果想要配置引脚既可以输出又可以输入时可以选择配置模式为 复用推挽输出、复用开漏输出。

二、资料引荐

(1)blibli视频(强烈推荐)
https://www.bilibili.com/video/BV1fu411a74Q/?spm_id_from=888.72910.top_right_bar_window_history.content.click&vd_source=273b93a06e806bc47b6ed916664552a6
(2)(比较推荐)https://blog.csdn.net/zjy0926/article/details/127518137
(3)(GPIO)https://blog.csdn.net/Wysnbb/article/details/127647817
(4)(GPIO)https://blog.csdn.net/zjy0926/article/details/127518137
(5)(片上外设)http://admin.guyuehome.com/43756
(6)(MOS管)
https://baijiahao.baidu.com/s?id=1724352826134720032&wfr=spider&for=pc
(7)(VDD\VSS)
https://zhidao.baidu.com/question/1056298284163103299.html
(8)(MCU)https://blog.csdn.net/weixin_38293850/article/details/98476508

三、GPIO工作模式简述

如下图为芯片内GPIO的基本回路,可通过软件配置更改设置相应的回路。

在这里插入图片描述

1、其中上半部分为输入回路。

(1)其中有一个 TTL施密特触发器:可以将模拟信号转化为数字信号,具有滤波作用,可作为波形整形电路,能将模拟信号波形整形为数字电路能够处理的方波波形,在此处理后芯片能接收到的信号就只有1或者0了。当设置为模拟输入时,该部分不被打开,输入到处理器的就是0-3.3V的电平信号
(2)上拉输入、下拉输入、浮空输入的区别
上拉输入就是将上图的上拉电阻投入,这样当没有信号输入的时候(悬空),监测信号是1
下拉输入就是将上图的下拉电阻投入,这样当没有信号输入的时候(悬空),监测信号是0
浮空输入就是下图的上拉电阻、下拉电阻都不投入,当没有输入信号时(悬空)电平状态根据外部电路决定,默认状态不唯一
总而言之就是,上拉输入引脚悬空时输入1,下拉输入引脚悬空时输入0,浮空输入引脚悬空时输入信号不确定
在这里插入图片描述

2、下半部分为输出模式

(1)在输出电路中有一个两个MOS管(又称场效应管),其作用就是通过输入高低电平控制上下导通的方向,上图电路同一时间只有一个mos管会导通。当设置高电平时P-MOS管导通,输出电压为VDD;当设置低电平时N-MOS管导通,输出电压为VSS(0V);通过控制MOS管导通状态,控制引脚的输出电平状态。
(2)推挽输出、开漏输出的区别
推挽输出时,直接通过控制两个MOS管的方式控制电平的输出,可输出高电平1也可输出低电平0,输出电压来自于片内(VDD、VSS),一般为0-3.3V
开漏输出时,只会使用N-MOS管,只能输出低电平。因此在使用时需要在引脚外加上拉电阻和电源,当不控制N-MOS管动作时,输出电压为外部设置电压;当控制N-MOS管动作时,外部电压被拉低,输出电压为0V;输出电压来自于片外,范围为(0-外部电压)
总而言之,推挽输出既可以输出高电平也可以输出低电平,输出电压来自于片内;开漏输出只能输出低电平,使用时需要在引脚外部配置电压,已达到输出高电平的效果,输出电压来自于片外。

在这里插入图片描述

3、复用模式

(1)个人理解,复用的意思就是这个引脚不被CPU直接使用,而是供给片内外设使用的,比如USART、PWM、I2C、SPI等。
(2)要想理解上述说明,有一个概念需要了解就是什么是外设?什么是片内外设和片外外设?外设和CPU的关系?
外设就是外部设备,CPU为运算控制的核心,他的工作就是通过编程执行相应的运算、控制等功能。最早的芯片只有cpu所以通讯等其他功能都是外芯片外加的,但是现在很多外设都可以集成在一个芯片里面,比如usart、I2C、SPI等,我们可以把这些叫做时片内外设。而芯片以外我们再添加的设备功能,我们可以叫为片外外设。
(3)在此基础上再去理解复用的意思,配置这个引脚为复用模式,就是把这个引脚完全交由对应的外设控制,可以时输入也可以时输出,输入的信号直接到外设那里,输出的信号来自于对应外设;例如我们需要配置一个串口,我们需要配置两个GPIO引脚为复用模式,其中一个的功能时接收(输入),另一个的功能时发送(输出)。具体需要配置完GPIO后,再去做串口的相关配置。
(4)推挽复用输出、开漏复用输出的区别和推挽输出、开漏输出的区别一样,不再做叙述。

四、总结

就此,对于STM32的8中GPIO的工作模式和配置,就有了大概的了解,具体的驱动编写过程中可以依此对应设置,GPIO的配置除了工作模式的配置外,在配置输出状态时还需要配置io口的输出速率,有2MHz、10MHz、50MHZ三种,设置不对也有可能造成数据失真、资源浪费等问题,使用时也需要注意;
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值