GPIO工作方式:
输入方式:
输入浮空【GPIO_Mode_IN_FLOATING】
输入上拉【GPIO_Mode_IPD】
输入下拉【GPIO_Mode_IPU】
模拟输入【GPIO_Mode_AIN】
输出方式:
开漏输出【GPIO_Mode_Out_OD】
复用开漏输出【GPIO_Mode_AF_OD】
推挽输出【GPIO_Mode_Out_PP】
复用推挽输出【GPIO_Mode_AF_PP】
每组GPIO寄存器包含:
32位配置寄存器(GPIOx_CRL(低),GPIOx_CRH(高))
32位数据寄存器(GPIOx_IDR(输入),GPIOx_ODR(输出))
32位置位、复位寄存器(GPIOx_BSRR)
16位复位寄存器(GPIOx_BRR)
32位锁定寄存器(GPIOx_LCKR)
GPIO重要库函数【注意引用参数】
【初始化IO口状态】
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
【读取输入电平函数】
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
【读取输出电平函数】
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
【设置输出电平函数】
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);