目录
一、GPIO简介
1.GPIO(General Propose Input Out)通用输入输出口
2.可配置为八种输入输出模式
3.引脚电平可配置:0~3.3v,部分引脚可配置5v
4.输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
5.输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协e议接收数据等
二、GPIO基本结构
寄存器主要是储存数据
驱动器主要是用来增加信号的驱动能力
三、GPIO位的基本结构
四、GPIO的八种模式
1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1。
2、带上拉输入GPIO_IPU——IO内部上拉电阻输入。
3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入。
4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电。
5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能。
6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的。
7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)。
8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)。
(1)输入浮空/上拉/下拉配置
1.输入浮空:VDD,VSS均断开
2.上拉输入:VDD闭合,VSS断开,输入高电平
3.下拉输入:VDD断开,VSS闭合,输入低电平
(2)高阻抗的模拟输入
应用于ADC模拟输入
(3)开漏/推挽输出
1.开漏 Open Drain
当输入信号为高电平时,为VDD高阻态(指输出引脚与内部断开)
只能输出低电平,如果要输出高电平,需要上拉电阻。
2.推挽 Push-Pull
非常常用的输出方式,高低电平都可输出。
(4)复用开漏/推挽输出
主要用于外设
开漏/推挽输出输出的是输出数据寄存器中的数据
复用开漏/推挽输出输出的是来自外设的数据