370 字
2 分钟
STM32 引脚模式
2022-10-23

基础引脚模式#

STM32 中基础的引脚模式有 7 种:

常量工作模式详细
GPIO_MODE_INPUT浮空输入电平状态不确定,完全由外部输入决定
GPIO_MODE_OUTPUT_PP推挽输出强上拉输出
GPIO_MODE_OUTPUT_OD开漏输出准双向口
GPIO_MODE_AF_PP复用推挽输出片内外设功能(SCL、SDA)
GPIO_MODE_AF_OD复用开漏输出片内外设功能(TX、MOSI、MISO、SCK、SS)
GPIO_MODE_AF_INPUT复用输入与浮空输入一致
GPIO_MODE_ANALOG模拟输入

STM32 HAL 设置引脚模式:

GPIO_InitTypeDef GPIO_InitStruct = {0}; //创建引脚句柄
GPIO_InitStruct.Mode = GPIO_MODE_XXX; //设置引脚模式

Pull 状态#

STM32 中可以设置每个引脚的 Pull 状态:

常量状态详细
GPIO_NOPULL不拉不设置引脚状态
GPIO_PULLUP上拉上拉引脚,默认读取为高电平
GPIO_PULLDOWN下拉下拉引脚,默认读取为低电平

STM32 HAL 设置引脚状态:

GPIO_InitTypeDef GPIO_InitStruct = {0}; //创建引脚句柄
GPIO_InitStruct.Pull = GPIO_XXX; //设置引脚状态

当 GPIO 处于输出模式时,一般选择 no pull,引脚能够正确地输出目标值

当 GPIO 处于输入模式时,需要根据默认的输入值来确定配置模式。

以按键为例,不设置外部上拉或下拉电阻:

  • 如果按键另一端是接 GND,则 GPIO 应该设置为 Pull-Up,默认输入为 1,如果按下按键则输入为 0
  • 如果按键另一端是接 VCC,则 GPIO 应该设置为 Pull-Down,默认输入为 0,如果按下按键则输入为 1
STM32 引脚模式
https://fuwari.vercel.app/posts/嵌入式/stm32/stm32-引脚模式/
作者
Asuwee
发布于
2022-10-23
许可协议
CC BY-NC-SA 4.0