void GPIO_DeInit(GPIO_TypeDef* GPIOx);//1
void GPIO_AFIODeInit(void);//2
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);//3
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);//4
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//5
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);//6
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//7
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);//8
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//9
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//10
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//11
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//12
第1个:调用后可以使被选择的GPIO外设复位
第2个:调用后可以使被选择的AFIO外设被复位
第3个:不可以直接调用,需要先用结构体的参数来初始化GPIO口,需要先定义结构体变量(GPIO_InitTypeDef+自己取的名字),再给结构体赋值,然后再调用这个函数,然后它就会按照刚刚配置的数据对GPIO口赋值
第4个:调用后可以把结构体变量赋一个默认值
第5个~~第8个:GPIO的读取函数
第9个~~第12个:GPIO的写入函数
剩下还有很多函数,但暂时用不上
GPIO的8种模式:
GPIO_Mode_AIN = 0x0,//1
GPIO_Mode_IN_FLOATING = 0x04,//2
GPIO_Mode_IPD = 0x28,//3
GPIO_Mode_IPU = 0x48,//4
GPIO_Mode_Out_OD = 0x14,//5
GPIO_Mode_Out_PP = 0x10,//6
GPIO_Mode_AF_OD = 0x1C,//7
GPIO_Mode_AF_PP = 0x18//8
1:模拟输入
2:浮空输入
3:下拉输入
4:上拉输入
5:开漏输出
6:推挽输出
7:复用开漏
8:复用推挽
4个GPIO输出函数
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//1
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//2
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//3
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//4
1:把指定的口设置为高电平
2:把指定的口设置为低电平
3:前两个参数用来选择参数,第三个参数用来决定端口电信号,例如Bit_SET,就是给高电平
4:第一个参数用来选择GPIOX,第二个参数用来对16个端口进行写入操作