笔记:推挽输出、下拉输入

GPIO_Mode_Out_PP 代表推挽输出模式(Push-Pull Output Mode),这是一种常用的 GPIO 输出模式。在推挽输出模式下,GPIO 引脚可以输出高电平或低电平,能够直接驱动一些外部设备,如 LED 灯、继电器等。

工作原理

当引脚输出高电平时,内部的上拉晶体管导通,下拉晶体管截止,引脚与电源相连,输出高电平信号。

当引脚输出低电平时,内部的下拉晶体管导通,上拉晶体管截止,引脚与地相连,输出低电平信号。

        当IN输入低电平时,P-MOS导通,N-MOS截止,此时OUT输出的电压是VDD,高电平;

        当IN输入高电平时,N-MOS导通,P-MOS截止,此时OUT输出的电压是VSS,低电平;

GPIO_Mode_IPD 代表下拉输入模式(Input Pull-Down Mode),在这种模式下,GPIO 引脚用于输入信号,并且内部会连接一个下拉电阻,将引脚的默认电平拉低到地电平。

工作原理

当外部没有信号输入时,由于内部下拉电阻的作用,引脚电平为低电平。

当外部有高电平信号输入时,引脚电平会被拉高,此时可以通过读取引脚的电平状态来获取外部信号。

为什么在配置LED的时候是推挽输出?

1.推挽输出模式能够提供较强的驱动能力,既可以输出高电平,也可以输出低电平。当输出高电平时,引脚通过内部的上拉晶体管连接到电源,能够向外部负载(如 LED)提供电流;当输出低电平时,引脚通过内部的下拉晶体管连接到地,能够吸收外部负载的电流。这样可以确保 LED 能够获得足够的电流来正常发光。

2.推挽输出模式可以方便地控制引脚的电平状态。通过调用标准库中的 GPIO_SetBits 和 GPIO_ResetBits 函数,能够轻松地将引脚置为高电平或低电平,从而实现 LED 的点亮和熄灭控制。

为什么配置红外传感器的时候是下拉输入?

1.避免引脚浮空。红外传感器通常输出数字信号(高电平或低电平),用于指示是否检测到物体。在没有外部信号输入时,如果 GPIO 引脚处于浮空状态,引脚电平会受到外界干扰而不稳定,可能会导致误判。下拉输入模式内部连接了一个下拉电阻,将引脚的默认电平拉低到地电平,避免了引脚浮空,使引脚电平更加稳定。

2.准确读取传感器信号。当红外传感器检测到物体时,会输出高电平信号;当未检测到物体时,引脚电平保持为低电平(由于下拉电阻的作用)。通过将 GPIO 引脚配置为下拉输入模式,可以准确地读取红外传感器输出的信号,判断是否检测到物体。

为什么配置按键的时候是上拉输入?

1. 避免引脚浮空
        按键在未按下时,其对应的 GPIO 引脚如果处于浮空状态,那么引脚电平会受到外界干扰(如电磁干扰、静电等)而不稳定,可能会出现电平随机跳变的情况,导致单片机误判按键状态。
采用上拉输入模式,内部会连接一个上拉电阻,将引脚的默认电平拉高到电源电平。这样在按键未按下时,引脚电平稳定在高电平;当按键按下时,引脚通过按键连接到地,电平变为低电平。从而有效避免了引脚浮空带来的干扰问题。
2. 确保按键状态的准确读取
        未按下状态:在按键未按下时,由于上拉电阻的作用,引脚保持高电平。单片机读取该引脚电平时,能够稳定地检测到高电平信号,从而判断按键处于未按下状态。
按下状态:当按键按下时,按键导通,将引脚电平拉低到地电平。单片机读取到低电平信号,即可判断按键被按下。通过这种方式,可以准确地读取按键的状态变化。

好的,接下来配置GPIO,还是采用直接操作寄存器的方式。 PC13配置为推挽输出,初始化之后输出低 PC14配置为推挽输出,初始化之后输出低 PC15配置为推挽输出,初始化之后输出低 PF0配置为推挽输出,初始化之后输出低 PC0配置为悬浮输入,需要用到ADC,是ADC_IN10 PC1配置为悬浮输入,需要用到ADC,是ADC_IN11 PC2配置为推挽输出,初始化之后输出低 PC3配置为悬浮输入,需要用到ADC,是ADC_IN13 PA0配置为串口,这个引脚是USART4_TX PA1配置为串口,这个引脚是USART4_RX PA2配置为悬浮输入,需要用到ADC,是ADC_IN2 PA3配置为悬浮输入 PA4配置为悬浮输入 PA5配置为推挽输出,初始化之后输出低 PA6配置为上拉输入 PA7配置为推挽输出,初始化之后输出低 PC4配置为推挽输出,初始化之后输出低 PC5配置为推挽输出,初始化之后输出低 PB1配置为悬浮输入,需要用到ADC,是ADC_IN9 PB2配置为推挽输出,初始化之后输出低 PB10配置为串口,这个引脚是USART3_TX PB11配置为串口,这个引脚是USART3_RX PB12配置为推挽输出,初始化之后输出低 PB13配置为推挽输出,初始化之后输出低 PB14配置为推挽输出,初始化之后输出低 PB15配置为推挽输出,初始化之后输出低 PC6配置为推挽输出,初始化之后输出低 PC7配置为推挽输出,初始化之后输出低 PC8配置为推挽输出,初始化之后输出低 PC9配置为推挽输出,初始化之后输出低 PA8配置为推挽输出,初始化之后输出低 PA9配置为I²C功能,这个引脚是SCL PA10配置为I²C功能,这个引脚是SDA PA11配置为推挽输出,初始化之后输出低 PA12配置为推挽输出,初始化之后输出低 PA15配置为悬浮输入 PC10配置为推挽输出,初始化之后输出低 PC11配置为悬浮输入 PC12配置为串口,这个引脚是USART5_TX PD2配置为串口,这个引脚是USART5_RX PB3配置为串口,这个引脚是USART5_TX PB4配置为串口,这个引脚是USART5_RX PB5配置为悬浮输入 PB6配置为推挽输出,初始化之后输出低 PB7配置为悬浮输入 PB8配置为推挽输出,初始化之后输出低 PB9配置为推挽输出,初始化之后输出
05-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值