目录
GPIO端口8种模式
STM32F103的GPIO配置
STM32F407的GPIO配置
F4的GPIO的8种模式配置
GPIO端口8种模式
-
输入浮空
-
输入上拉
-
输入下拉
-
模拟输入
-
开漏输出
-
推挽输出
-
推挽复用功能
-
开漏复用功能
查看STM32F10x中文参考手册和STM32F4xx中文参考手册,确定上面8种模式是大体一致的。
STM32F103的GPIO配置
STM32F103的GPIO_InitTypedDef结构体如下:
typedef struct
{
uint16_t GPIO_Pin; /* 引脚 */
GPIOSpeed_TypeDef GPIO_Speed; /* 速度 */
GPIOMode_TypeDef GPIO_Mode; /* 工作模式 */
}GPIO_InitTypeDef;
STM32F103的GPIO_Mode取值如下:
工作模式 |
F103对应值 |
输入浮空 |
GPIO_Mode_IN_FLOATING |
输入上拉 |
GPIO_Mode_IPU |
输入下拉 |
GPIO_Mode_IPD |
模拟输入 |
GPIO_Mode_AIN |
开漏输出 |
GPIO_Mode_Out_OD |
推挽输出 |
GPIO_Mode_Out_PP |
推挽复用功能 |
GPIO_Mode_AF_PP |
开漏复用功能 |
GPIO_Mode_AF_OD |
STM32F103的GPIO_Speed取值如下:
最大输出频率 |
F103对应值 |
10MHz |
GPIO_Speed_10MHz |
2MHz |
GPIO_Speed_2MHz |
50MHz |
GPIO_Speed_50MHz |
STM32FF10x手册中的部分说明:
STM32F407的GPIO配置
STM32F407的GPIO_InitTypedDef结构体如下:
typedef struct
{
uint32_t GPIO_Pin; /* 引脚 */
GPIOMode_TypeDef GPIO_Mode; /* 工作模式 */
GPIOSpeed_TypeDef GPIO_Speed; /* 速度 */
GPIOOType_TypeDef GPIO_OType; /* 输出类型 */
GPIOPuPd_TypeDef GPIO_PuPd; /* 上拉/下拉 */
}GPIO_InitTypeDef;
STM32F407的GPIO_Mode取值如下:
工作模式 |
F407对应值 |
输入 |
GPIO_Mode_IN |
输出 |
GPIO_Mode_OUT |
复用功能 |
GPIO_Mode_AF |
模拟 |
GPIO_Mode_AN |
STM32F407的GPIO_Speed取值如下:
最大输出频率 |
F407对应值 |
2MHz |
GPIO_Speed_2MHz |
25MHz |
GPIO_Speed_25MHz |
50MHz |
GPIO_Speed_50MHz |
100MHz |
GPIO_Speed_100MHz |
STM32F407的GPIO_OType取值如下:
输出类型 |
F407对应值 |
推挽 |
GPIO_OType_PP |
开漏 |
GPIO_OType_OD |
STM32F407的GPIO_PuPd取值如下:
极性 |
F407对应值 |
浮空 |
GPIO_PuPd_NOPULL |
上拉 |
GPIO_PuPd_UP |
下拉 |
GPIO_PuPd_DOWN |
F4的GPIO的8种模式配置
模式类型 |
GPIO_MODE |
GPIO_OTYPE |
GPIO_PUPD |
输入浮空 |
GPIO_Mode_IN |
不配置或任意配置 |
GPIO_PuPd_NOPULL |
输入上拉 |
GPIO_Mode_IN |
不配置或任意配置 |
GPIO_PuPd_UP |
输入下拉 |
GPIO_Mode_IN |
不配置或任意配置 |
GPIO_PuPd_DOWN |
模拟功能 |
GPIO_Mode_AN |
不配置或任意配置 |
GPIO_PuPd_NOPULL |
开漏输出 |
GPIO_Mode_OUT |
GPIO_OType_OD |
GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN |
推挽输出 |
GPIO_Mode_OUT |
GPIO_OType_PP |
GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN |
推挽复用功能 |
GPIO_Mode_AF |
GPIO_OType_PP |
GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN |
开漏复用功能 |
GPIO_Mode_AF |
GPIO_OType_OD |
GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN |
PS:开漏输出、推挽输出、推挽复用功能、开漏复用功能的GPIO_PUPD三种都可设置,是根据F4手册说的“具有上拉或下拉功能的XXXX”,不过得分情况使用。如果是输出,一般选GPIO_PuPd_NOPULL,引脚能够正确地输出高电平低电平信号;如果是输入,具体看应用默认输入值0或1,0则GPIO_PuPd_DOWN,1则GPIO_PuPd_UP。
STM32F407手册部分说明: