一、GPIO功能
1、
GPIO模块基本框架图
GPIO作为输入、输出接口是单片机最基本的外设。(个人理解gpio是作为芯片内部功能与外接电路的连接部分。)
2、
gpio的基础模式可分成下图中的八种:
具体介绍功能:
1、模拟输入: 顾名思义,即为输入模拟信号
2、浮空输入:I/O口的状态是不确定的,完全由外部输入决定
3、下拉输入:在没有信号输入的时候默认输入低电平
4、上拉输入:在没有信号输入的时候默认输入高电平
5、开漏输出:IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现IO双向功能
6、推挽输出:IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
7、复 用:理解为GPIO口被作为其他外设接口使用
3、
个人经验得到gpio功能可以做以下使用。外部中断(exti),复用作为其他外设如(tim,ADC)等使用,也可以用作小功率驱动如点亮LED。但是本身驱动能力小(单片机内部电流小),如果需要驱动大功率器件需要外接各种驱动芯片。
二、如何使用GPIO
//开启时钟32单片机gpio使用时需要开启对应总线上对应的时钟
RCC_APB2PeriphClockCmd(GPIOB,ENABLE);
GPIO_InitTypeDef GPIO_Initstr;
GPIO_Initstr.GPIO_Pin=GPIO_Pin_5;//选择具体的IO口
GPIO_Initstr.GPIO_Mode=GPIO_Mode_Out_PP;//推挽式输出
GPIO_Initstr.GPIO_Speed=GPIO_Speed_50MHz;//50MHz的速度
GPIO_Init(GPIOB,&GPIO_Initstr);