找回密码
 注册
关于网站域名变更的通知
查看: 396|回复: 3
打印 上一主题 下一主题

STM32—GPIO工作模式简记

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-11-23 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
初次接触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输出,除了必须用开漏模式的场合,一般都使用推挽模式。

该用户从未签到

2#
发表于 2021-11-23 13:57 | 只看该作者
I/O口内部接下拉电阻,若引脚悬空或I/O口外部没有信号输入,I/O口默认为低电平
  • TA的每日心情

    2019-11-19 15:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2021-11-23 13:57 | 只看该作者
    推挽输出模式可以输出强高/强低电平,连接数字器件;

    该用户从未签到

    4#
    发表于 2021-11-23 13:58 | 只看该作者
    开漏输出模式可以输出强低电平,需要外接上拉电阻才能实现输出高电平;
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-18 03:42 , Processed in 0.093750 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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