1.GPIO的初始化
1.GPIO的初始化:
逻辑
1.使能时钟
2.引用结构体
3.配置结构体
4.调用库函数进行初始化
时钟使能: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
结构体引用: GPIO_InitTypeDef GPIO_InitStructure;
结构体配置: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //输入输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口翻转速度
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //引脚口的选用
初始化: GPIO_Init(GPIOA, &GPIO_InitStructure);
2.GPIO常用库函数:
2.1GPIO_Init():按照结构体内配置对寄存器赋值,进行GPIO的初始化
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
GPIO_TypeDef* GPIOx:初始化的GPIOx(x=A,B…)
uint16_t GPIO_Pin:GPIOx_Pin_y的引脚号(y=1,2,3…)
2.2GPIO_SetBits():将对应的GPIO置1
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_TypeDef* GPIOx:初始化的GPIOx(x=A,B…)
uint16_t GPIO_Pin:GPIOx_Pin_y的引脚号(y=1,2,3…)
2.3.GPIO_ResetBits ():将对应的GPIO置0
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_TypeDef* GPIOx:初始化的GPIOx(x=A,B…)
uint16_t GPIO_Pin:GPIOx_Pin_y的引脚号(y=1,2,3…)
2.4.GPIO_ReadOutputDataBit ():读取对应GPIO输入电平
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_TypeDef* GPIOx:初始化的GPIOx(x=A,B…)
uint16_t GPIO_Pin:GPIOx_Pin_y的引脚号(y=1,2,3…)