有了文章二的理解后,我们返回GPIOA文章一。如何用固件库操作寄存器。首先要理解两个结构体:
//定义8种模式
typedef enum
{ GPIO_Mode_AIN = 0x0, //模拟输入
GPIO_Mode_IN_FLOATING = 0x04, //浮空输入
GPIO_Mode_IPD = 0x28, //输入下拉
GPIO_Mode_IPU = 0x48, //输入上拉
GPIO_Mode_Out_OD = 0x14, //开漏输出
GPIO_Mode_Out_PP = 0x10, //推挽式输出
GPIO_Mode_AF_OD = 0x1C, //开漏复用输出
GPIO_Mode_AF_PP = 0x18 //推挽式复用输出
}GPIOMode_TypeDef;
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_AIN) || ((MODE) == GPIO_Mode_IN_FLOATING) || \
((MODE) == GPIO_Mode_IPD) || ((MODE) == GPIO_Mode_IPU) || \
((MODE) == GPIO_Mode_Out_OD) || ((MODE) == GPIO_Mode_Out_PP) || \
((MODE) == GPIO_Mode_AF_OD) || ((MODE) == GPIO_Mode_AF_PP))
//定义枚举类型