370 字
2 分钟
STM32 引脚模式
基础引脚模式
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