流程
配置时钟(RCC.h内)
- 打开GPIO时钟(GPIOA / GPIOB)
配置GPIO(GPIO.h内)
一、GPIO模式(GPIO_Mode)
输入 | 代码 | 输出 | 代码 |
上拉输入 | GPIO_Mode_IPU | 开漏输出 | GPIO_Mode_Out_OD |
下拉输入 | GPIO_Mode_IPD | 推挽输出 | GPIO_Mode_Out_PP |
浮空输入 | GPIO_Mode_IN_FLOATING | 开漏复用输出 | GPIO_Mode_AF_OD |
推挽复用输出 | GPIO_Mode_AF_PP | ||
模拟输出 | GPIO_Mode_AIN |
二、GPIO引脚(GPIO_Pin)
- GPIOA:0~15(GPIO_Pin_0 - GPIO_Pin_15)
- GPIOB:0~15(GPIO_Pin_0 - GPIO_Pin_15)
三、GPIO翻转速度(GPIO_Speed)
输出速度 | 代码 |
10Mhz | GPIO_Speed_10MHz |
2Mhz | GPIO_Speed_10MHz |
50Mhz | GPIO_Speed_10MHz |
知识点
- 上拉 / 下拉输入
如果输入不控制,则默认为高(上拉) / 低(下拉)电平。 - 浮空输入
如果输入不控制,则默认电平不确定。 - 开漏输出
GPIO只能拉低电平,需要拉高的话,外部要有上拉电路。 - 推挽输出
GPIO能拉高拉低电平。 - 模拟输出
将其他输入 / 输出关闭,直通片上外设(ADC等)。 - 复用功能
GPIO的输出(开漏、推挽)不由CPU控制,而是由片上外设控制。