Mode(模式设置):
typedef enum
{
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode */
GPIO_Mode_AF = 0x02, /*!< GPIO Alternate function Mode */
GPIO_Mode_AN = 0x03 /*!< GPIO Analog Mode */
}GPIOMode_TypeDef;
GPIO的端口模式共有四种:输入模式(Input)、输出模式(Output)、复用模式(Alternate function)、模拟输入模式(Analog);
OType(输出模式):
typedef enum
{
GPIO_OType_PP = 0x00,
GPIO_OType_OD = 0x01
}GPIOOType_TypeDef;
GPIO的输出模式共有两种:推挽输出(PP)和开漏输出(OD)
PuPd(输入模式):
typedef enum
{
GPIO_PuPd_NOPULL = 0x00,
GPIO_PuPd_UP = 0x01,
GPIO_PuPd_DOWN = 0x02
}GPIOPuPd_TypeDef;
输入模式:NoPULL(浮空)电压即不为0(低电平,也不为3.3V(高电平),约在1V左右。
UP(上拉)电压为3.3V(高电平)
DOWN(下拉)电压为0V(低电平)
Speed(端口速度)
typedef enum
{
GPIO_Low_Speed = 0x00, /*!< Low speed */
GPIO_Medium_Speed = 0x01, /*!< Medium speed */
GPIO_Fast_Speed = 0x02, /*!< Fast speed */
GPIO_High_Speed = 0x03 /*!< High speed */
}GPIOSpeed_TypeDef;
GPIO端口速度有四种:低速、中速、快速、超快速。
用户可根据不同需要配置端口速度,以节省功耗。
#define GPIO_Speed_2MHz GPIO_Low_Speed
#define GPIO_Speed_25MHz GPIO_Medium_Speed
#define GPIO_Speed_50MHz GPIO_Fast_Speed
#define GPIO_Speed_100MHz GPIO_High_Speed
值得注意的是:low、medium、fast、high分别被宏定义为2M、25M、50M、100M。调用端口速度结构体 GPIO_Speed_Typedef时,应当用上述表示法。