GPIO的种类
GPIOA——>PA0、PA1、PA2…PA15
GPIOB——>PB0、PB1、PB2…PB15
. . .
. . .
. . .
GPIOG——>PG0、PG1、PG2、…PG15
8中工作模式
有4中输入模式
1、 GPIO_Mode_AIN :模拟输入,外部ADC模拟输入
2、GPIO_Mode_IN_FLOATING :浮空输入
3、GPIO_Mode_IPD:下拉输入,接负极,输入高电平
4、GPIO_Mode_IPU:上拉输入,接正极,输入低电平
与4中输出模式
1、GPIO_Mode_Out_OD:开漏输出
2、GPIO_Mode_Out_PP:推挽输出
3、GPIO_Mode_AF_OD:复用开漏输出
4、GPIO_Mode_AF_PP:复用推挽输出
注:开漏只能输出低电平,推挽可以输出高电平和低电平
通用gpio:4种输入,2种输出,此时GPIO受内核cpu的控制
复用gpio:2种输出,gpio受片上外设(i2c、UART、TIM、PWM、ADC)等的控制,此时io口输入输出的信息,都是由片上外设发送和接收。
————————————————
输入:模块向单片机输入
输出:单片机向模块输出
GPIO配置流程
开启挂在APB2的时钟
RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
//stm32f10x_rcc.h/c中
初始化引脚
GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
//stm32f10x_gpio.h/c中
配置引脚状态(设置为高或低)
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//stm32f10x_gpio.h/c中