【STM32 HAL库】普通GPIO详解与CubeMX配置
前言
本文为个人对于CubeMX的GPIO常规输入输出配置的总结 以防遗忘 文中错误恳请大家指正 共同进步
GPIO基本知识
GPIO的八种工作模式
输入:
- 浮空输入 (引脚不连接内部上下拉电阻,在无外部连接时引脚电平不确定
- 上拉输入 (引脚连接内部上拉电阻,使引脚在无外部连接时保持高电平
- 下拉输入 (引脚连接内部下拉电阻,使引脚在无外部连接时保持低电平
- 模拟输入 (引脚配置为模拟模式,用于ADC输入
输出:
-
通用推挽输出 (具有较高的驱动能力 点亮LED 驱动电机
-
通用开漏输出 (只能驱动低电平,当输出高电平时,引脚处于高阻抗状态,不能驱动电流
-
复用推挽输出 (常复用为其他功能 如USART_TX
-
复用开漏输出 (常复用为其他功能 如USART_RX
在CubeMX中配置GPIO
本文以STM32G431RBT6蓝桥杯开发板为例
GPIO输出配置
GPIO输入配置
GPIO 配置参数详解
这里推荐一个blogGPIO参数含义详解
GPIO_Output
GPIO Output Level:根据需求配置
默认输出电平,引脚上电时的初始电平
GPIO Mode:推挽输出
推挽输出相较于开漏输出有较大的驱动力,一般配置为推挽输出即可
GPIO Pull-up/Pull-down:无影响
对于GPIO Output来讲,上下拉一般没什么用,因为引脚作为输出端,不为输入端,不接受外部信号
Maximum output speed:Low
一般对于普通GPIO而言,Low低速即可满足需求
GPIO_Input
GPIO Mode:默认
只有一个选项 输入模式Input mode
GPIO Pull-up/Pull-down:根据需求
根据需求,作用为保证无信号输入时输入端的电平为高/低电平(电平确定
对于八种工作模式的理解
最后,让我们再理一下八种GPIO工作模式与CubeMX中GPIO的配置的对应关系
输出:
- 通用推挽输出 = GPIO_Output + Output Push Pull
- 通用开漏输出 = GPIO_Output + Output open Drain
- 复用推挽输出 在复用为其他功能时自动配置
- 复用开漏输出 在复用为其他功能时自动配置
输入:
- 浮空输入 = GPIO_Input + Input mode + 不上拉也不下拉
- 上拉输入 = GPIO_Input + Input mode + Pull-up
- 下拉输入 = GPIO_Input + Input mode + Pull-down
- 模拟输入 在复用为ADC功能时,自动配置为模拟输入