资讯详情

ST单片机GPIO工作模式

在使用STM当开发8台单片机时,我们在配置管脚时会看到以下文件。
OD(开漏),PP(推挽),输入FL(浮空),PU (上拉)有不同的选项,所以如何选择,首先要弄清楚它们是什么意思。
typedef enum {   GPIO_Mode_In_FL_No_IT      = (uint8_t)0x00,   /*!< Input floating, no external interrupt */   GPIO_Mode_In_PU_No_IT      = (uint8_t)0x40,   /*!< Input pull-up, no external interrupt */   GPIO_Mode_In_FL_IT         = (uint8_t)0x20,   /*!< Input floating, external interrupt */   GPIO_Mode_In_PU_IT         = (uint8_t)0x60,   /*!< Input pull-up, external interrupt */   GPIO_Mode_Out_OD_Low_Fast  = (uint8_t)0xA0,   /*!< Output open-drain, low level, 10MHz */   GPIO_Mode_Out_PP_Low_Fast  = (uint8_t)0xE0,   /*!< Output push-pull, low level, 10MHz */   GPIO_Mode_Out_OD_Low_Slow  = (uint8_t)0x80,   /*!< Output open-drain, low level, 2MHz */   GPIO_Mode_Out_PP_Low_Slow  = (uint8_t)0xC0,   /*!< Output push-pull, low level, 2MHz */   GPIO_Mode_Out_OD_HiZ_Fast  = (uint8_t)0xB0,   /*!< Output open-drain, high-impedance level, 10MHz */   GPIO_Mode_Out_PP_High_Fast = (uint8_t)0xF0,   /*!< Output push-pull, high level, 10MHz */   GPIO_Mode_Out_OD_HiZ_Slow  = (uint8_t)0x90,   /*!< Output open-drain, high-impedance level, 2MHz */   GPIO_Mode_Out_PP_High_Slow = (uint8_t)0xD0    /*!< Output push-pull, high level, 2MHz */ }GPIO_Mode_TypeDef;

今天看了百问网的资料总结如下:

I/O引脚共有8工作模式有四种:推拉输出、开漏输出、推拉复用 输出、复用泄漏输出、上拉输入、下拉输入、浮空输入、模拟输入四种输入模式。

1. 推挽输出
两种推挽结构MOS管道以互补对称的方式连接,一个三极管总是在任何时候导通,另一个三极管截通 停止,推拉模式把输出控制变成VDD/Vss输出,使得输出电流增大,提高了输出引脚的驱动能力,提高了电路的负载能力和开关的动作速度。
2.开漏输出 漏是指MOS的漏极
泄漏输出模式即MOS管道的漏极悬空通常需要外部上拉电阻才能输出高电平,但开漏输出有 推挽输出的一些特点:
①利用外部电路驱动能力。 “输出控制”只需要提供一个很小的栅极驱动电流, VCC 驱动电流通过上拉电阻增加外部负载;
②实现电平转换。推拉输出模式由 V DD 提供,即只能提供 3.3V 电平。使用泄漏输出模式后, VCC 可以为 5V,从而达到电平转换的效果。
③方便实现逻辑与功能。多个漏引脚可以直接一起使用,并连接适当的上拉电阻 逻辑与关系可以实现,即当所有引脚均输出高电平时,输出为高电平。如果任何引脚输出低电平,则输出 低电平I 2 C 、 SMBUS 常用于等总线电路。
3.复用推挽输出,复用开漏输出
GPIO 除了引脚作为通用输入 / 除输出引脚外,还可作为片上的外设( USART 、I2 C 、 SPI 等)专用引脚, 也就是说,一个引脚可以有多种用途,但同时一个引脚只能使用复用功能之一。
引脚设置为复用功能时,可选择复用推拉输出模式或复用开漏输出模式 需要外部上拉电阻。
4.上拉输入
上拉电阻,连接外部 I/O 引脚。当开关关闭合时,外部 I/O 无输入信号 默认输入高电平。
该模式的典型应用是外部按钮,当没有按钮时, MCU 当按钮按下时,引脚是确定的高电平 等待,引脚电平被拉到低电平。
5. 下拉输入
V ss 通过开关和下拉电阻连接外部 I/O 引脚。当开关闭合,外部 I/O 无输入信号时,
默认输入低电平。
6. 浮空输入
既无上拉也无下拉, I/O 引脚直接连接 TTL 肖特基 触发器,此时I/O 引脚浮空,读取的电平是不确定的,外部信号是什么电平, MCU 引脚就输入什么电平。 MCU 复位上电后,默认为浮空输入模式。
7.模拟输入
引脚信号直接 连接模拟输入,实现对外部信号的采集。
STM32 的 I/O 引脚工作在输出模式下时,需要配置 I/O 引脚的输出速度。该输出速度不是输出信号的速度, 而是I/O 口驱动电路的响应速度。
STM32 提供三个输出速度: 2MHz 、 10MHz 、 50MHz 。实际开发中需要结合实际情况选择合适的相应速 度,以兼顾信号的稳定性和低功耗。通常,当设置为高速时,功耗高、噪声大、电磁干扰强;当设备为低速 时,功耗低、噪声小、电磁干扰弱。
通常简单外设,比如 LED 灯、蜂鸣器灯,建议使用 2MHz 的输出速度,而复用为 I 2 C 、 SPI 等通信信号引 脚时,建议使用10MHz 或 50MHz 以提高响应速度。

标签: st三极管8550

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台