GPIO的功能可分为输入输出。本文简介了GPIO输入、输出,展示了GPIO初始化步骤及示例代码(1、使能时钟;2、引脚初始化配置;3、引脚状态初始化),浅谈了引脚速度。
GPIO功能可分为输入与输出。
功能 | 名称 | 简述 |
输入 | 上拉输入 (GPIO_Mode_IN_UP) | 默认转态下(引脚无输入时),读得的数据为1,高电平 |
输入 | 下拉输入(GPIO_Mode_IN_DOWN) | 与上拉输入相反,默认为0,低电平 |
输入 | 浮空输入(GPIO_Mode_IN_NOPULL) | 输入不确定,无上拉和下拉,输入阻抗较大,一般用于标准通信协议和 I2C、USART的接收端 |
输入 | 模拟输入模式(GPIO_Mode_AN) | 一般在使用ADC采集电压信号时,设置为模拟输入 |
输出 | 普通推挽输出(GPIO_Mode_OUT_PP) | 输出电平为3.3V |
输出 | 普通开漏输出(GPIO_Mode_OUT_OD) | 若要输出5V,则需外加上拉电阻,电源为5V。输出为高阻态时,由上拉电阻和电源向外输出5V的高电平 |
输出 | 复用推挽输出(GPIO_Mode_AF_PP) | 引脚复用功能采用复用模式 |
输出 | 复用开漏输出(GPIO_Mode_AF_OD) | 复用模式,且加上拉电阻 |
初始化步骤及示例
//1、时钟使能
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
//2、初始化配置
GPIO_InitTypeDef GPIO_InitStructure;
/*-------------------GPIOC--------------------*/
/*--PC10 推挽输出;PC11 推挽输出--*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //GPIO端口模式设置 普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //普通推挽输出,输出电平为3.3V
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //引脚的速度
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOC, &GPIO_InitStructure);
//3、引脚状态初始化
GPIO_WriteBit(GPIOC, GPIO_Pin_10, Bit_SET); //置高
GPIO_WriteBit(GPIOC, GPIO_Pin_11, Bit_RESET);//置低
输入引脚配置之引脚速度:
GPIO 引脚速度,又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。)
GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。