STM32之GPIO

最近稍微再复习了一下GPIO,再回过首来看当初自己初学GPIO时的那份懵懂,当初的一些疑惑也随之消散,原来所谓的困难也并非如此困难,我很喜欢天浩哥的那句话: 遇到困难,这时候你应该兴奋起来,每一个困难都在帮助我们自身找出问题,发现问题,解决问题,能力便会一步步提升。

废话不多说,先来看一篇总结:

浮空输入模式:

GPIO被配置为输入模式,但没有内部上拉或下拉电,GPIO引脚的电平由外部信号决定。如果外部信号提供足够的驱动电流,GPIO引脚可以准确地检测到外部信号的高电平或低电平状态。然而,如果外部信号的驱动电流较弱,GPIO引脚可能会受到电磁干扰或漂移影响,导致不稳定的电平状态。

适用于读取外部设备的信号,通常用于读取外部设备的信号,例如传感器输出、按键状态等。在这种情况下,外部设备的输出电平可以直接连接到GPIO引脚,而不需要额外的电路元件。然而,由于浮空输入模式的引脚状态容易受到外部干扰的影响,因此在使用时需要注意外部环境的干扰情况,以确保准确读取外部信号。

上拉输入模式:

GPIO被配置为输入模式,并启用了内部上拉电阻。在此模式下,当外部设备未连接时,GPIO引脚被拉高到VDD(供电电压)。

适用于连接开关、按钮等外部设备。当外部设备断开连接时,GPIO引脚被上拉到高电平,以确保稳定的输入状态。

下拉输入模式:

GPIO被配置为输入模式,并启用了内部下拉电阻。在此模式下,当外部设备未连接时,GPIO引脚被拉低到地。

适用于连接开关、按钮等外部设备。当外部设备断开连接时,GPIO引脚被下拉到低电平,以确保稳定的输入状态。

模拟输入模式:

GPIO被配置为模拟输入模式,用于连接模拟传感器或其他模拟设备。在此模式下,GPIO引脚可以读取模拟电压信号。

适用于连接模拟传感器、温度传感器等模拟设备,需要测量模拟电压信号的场景。

推挽输出模式:

GPIO被配置为输出模式,并且输出推挽信号。在此模式下,GPIO引脚可以提供高电平或低电平输出。

适用于控制LED、继电器、电机等需要提供电流的外部设备。推挽输出模式可以提供较高的输出电流。

开漏输出模式:

GPIO被配置为输出模式,并且输出开漏信号。在此模式下,GPIO引脚只能拉低,而不能拉高。

适用于实现多个设备共享同一个信号线的场景,如I2C总线上的SDA线。开漏输出模式允许多个设备通过外部上拉电阻来共享同一个信号线。

复用功能推挽输出模式:

GPIO被配置为复用功能模式,并且输出推挽信号。在此模式下,GPIO引脚具有某种特定的复用功能,并且可以提供高电平或低电平输出。

适用于与外部设备进行通信,如UART、SPI、I2C等。复用功能推挽输出模式允许GPIO引脚与外部设备通信并提供电平输出。

复用功能开漏输出模式:

GPIO被配置为复用功能模式,并且输出开漏信号。在此模式下,GPIO引脚具有某种特定的复用功能,并且只能拉低,而不能拉高。

适用于实现多个设备共享同一个信号线的场景,如I2C总线上的SCL线。复用功能开漏输出模式允许GPIO引脚与外部设备通信并提供开漏输出。

关于硬件消抖,我有话要说:

a. 硬件消抖,添加滤波电容,利用电容两端电压不能突变的特性减少抖动杂波,使波形更加规整。
b. 软件方式一:采用延时检测的方法错开抖动区域。
c. 软件方式二:按键按下后产生外部中断事件,进入中断处理函数中进行延时,缺点:中断中延时会导致低优
先级中断阻塞,也导致主循环阻塞,实时性很差。
d. 软件方式三:
按键 GPIO 初始化为中断方式,按键按下后产生外部中断事件,进入中断处理函数中,不采用延时 消抖,而是开启了一个定时器,定时器设定为10ms 后产生中断,定时器中断后再次检测按键 GPIO , 如果仍然是按下状态则调用按键处理函数。中断中只是开启了定时器,并未阻塞,主循环也没有阻 塞,从性能上最优,但是这种方法用到了一个定时器,占用了处理器资源。

上下拉主要用于输入模式,例如按键的上下拉,要区分按键按下和未按下的状态。

开漏模式,最重要的是只能输出低电平,高电平只能由外部上拉,I2C的线与,SPI等,基本会与通信协议挂钩。

复用模式,无非就是,一个引脚上有好多外设功能,现在想要选择另外一个呗 。

GPIO属于基本功吧,其实也没什么好说的,路漫漫其修远兮,吾将上下而求索。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值