找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1703|回复: 2
收起左侧

STM32—GPIO工作模式简记

[复制链接]
ID:825513 发表于 2021-10-8 10:35 | 显示全部楼层 |阅读模式
初次接触STM32,对GPIO的工作模式有时一脸懵(比51要复杂不少),在此作个简记。

GPIO工作模式
STM32的GPIO有4种输入模式(浮空输入、上拉输入、下拉输入、模拟输入),4种输出模式(开漏输出、复用开漏输出、推挽输出、复用推挽输出)。
浮空输入
在该模式下,I/O口的电平信号直接进入GPIO端口输入数据寄存器(GPIOx_IDR),MCU直接读取I/O口的电平,I/O口的电平状态完全由外部输入来决定;若该引脚悬空(无信号输入),读取到的电平状态为不确定。
上拉输入
I/O口内部接上拉电阻,若引脚悬空或I/O口外部没有信号输入,I/O口默认为高电平;若I/O口输入低电平,则引脚为低电平,MCU读取到的就是低电平。
下拉输入
I/O口内部接下拉电阻,若引脚悬空或I/O口外部没有信号输入,I/O口默认为低电平;若I/O口输入高电平,则引脚就为高电平,MCU读取到的就是高电平。
模拟输入
在该模式下,GPIOx_IDR为空,引脚的上拉/下拉电阻不起作用(即使配置了上拉/下拉模式)。
开漏输出
在该模式下,若控制输出为低电平,I/O口处于低电平状态;若控制输出为高电平,I/O口的电平状态由I/O口外部的上拉/下拉电阻来决定,若无上拉/下拉,I/O口处于悬空状态。
在该模式下,输入可用,可通过GPIOx_IDR读取I/O口的实际状态,I/O口的电平不一定是输出的电平。
复用开漏输出
GPIO复用为其他外设,GPIO端口输出数据寄存器(GPIOx_ODR)无效;输出的高/低电平来源于其它外设,输入可用,可通过GPIOx_IDR获取I/O实际状态,除了输出信号的来源改变外,其它与开漏输出模式功能相同。
推挽输出
在该模式下,若控制输出为低电平,I/O口处于低电平状态;若控制输出为高电平,I/O口处于高电平状态,外部上拉/下拉可控制在没有输出时I/O口的电平。
在该模式下,输入可用,可通过GPIOx_IDR读取I/O口的实际状态,I/O口的电平一定是输出的电平。
复用推挽输出
GPIO复用为其他外设,GPIOx_ODR无效;输出的高/低电平来源于其它外设,输入可用,可通过GPIOx_IDR获取I/O实际状态,除了输出信号的来源改变外,其它与推挽输出模式功能相同。
补充

    推挽输出模式可以输出强高/强低电平,连接数字器件;
    开漏输出模式可以输出强低电平,需要外接上拉电阻才能实现输出高电平;
    任何一种开漏模式,都需要接上拉电阻,否则只能输出低电平。
    上拉输入/下拉输入可用于检测外部信号(例如,按键);
    开漏输出一般应用于IIC等需要线与功能的总线电路中;
    复用开漏输出/复用推挽输出应用于片内外设;
    STM32的GPIO输出,除了必须用开漏模式的场合,一般都使用推挽模式。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:825513 发表于 2021-10-8 10:38 | 显示全部楼层
从自己的博客上直接复制而来,格式有点······(尴尬.jpg)
回复

使用道具 举报

ID:823636 发表于 2021-10-16 10:47 | 显示全部楼层
挺详细的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表