STM32单片机的八种GPIO模式

在前面的文章中提到了面试题中有问到GPIO口的分类,那接下来介绍一下GPIO口各个模式的功能和使用场景。

八种工作模式:

一、四种输入模式

1、上拉输入:默认高电平,相当于IO口接了上拉电阻,在无输入的情况下,保持高电平。

2、下拉输入:默认低电平,相当于IO口接了下拉电阻,在无输入的情况下,保持低电平。

3、浮空输入:浮空输入状态下,IO口为高阻态,即对外表现不是低电平也不是高电平。IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下(该引脚没有接任何的电路),读取该端口的电平是不确定的。

4、模拟输入:输入信号不经过施密特触发器(就是一个迟滞比较器)直接接入,接入到片上外设ADC,输入信号为模拟量而非数字量。下拉输入、上拉输入、浮空输入都是输出数字量。

二、四种输出模式

1、推挽输出:既可以输出高电平也可以输出低电平,一般的IO口输出控制都是用推挽输出。

2、开漏输出:开漏输出和推挽输出的区别在于,开漏输出时内部输出高电平的P-MOS管是断开的,也就是开漏输出不具备高电平的输出能力,只有低电平的输出能力。使用开漏输出一般在IO口外部上拉高电平,这样的设计只要也是为了在实现“线与”结构的时候,内部IO口不会烧掉。

3、复用推挽输出:IO口输出不由输出数字寄存器决定,而是由复用之后的片上外设输出。其他的内容和推挽输出无差别。

4、复用开漏输出:IO口输出不由输出数字寄存器决定,而是由复用之后的片上外设输出。其他的内容和开漏输出无差别。

工作模式的使用场景举例

1、浮空输入:串口通信中的RX。

2、上拉输入:按键检测,按键默认上拉。

3、下拉输入:按键检测,按键默认下拉。

4、模拟输入:ADC检测,默认状态下设置为模拟输入从而达到低功耗的目的。

5、开漏输出:实现"线与"功能,如模拟I2C的SCL和SDA。

6、推挽输出:一般情况下的IO口驱动。

7、复用推挽输出:和推挽输出一样,但是电平来自片上外设,比如PWM等。

8、复用开漏输出:和开漏输出一样,但是电平来自片上外设,比如硬件I2C等。

面试题

一、stm32中GPIO默认的状态?

stm32复位之后GPIO默认是浮空状态,高阻态。这个设计是为了芯片的低功耗设计的。

当然除了默认状态,也可以设置为模拟输入,也是为了芯片的低功耗。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值