系统结构
通过系统结构可以看出,所有GPIO都是挂载在APB2外设总线上的。
GPIO输入输出
GPIO在输出模式下可以控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等。
GPIO在输入模式下可以读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。
GPIO可配置8种输入输出模式:
1、上拉输入:可读取引脚电平,引脚悬空时默认输入高电平
2、下拉输入:可读取引脚电平,引脚悬空时默认输入低电平
3、浮空输入:当外部没有信号输入时,引脚电平状态不稳定,容易受到外部噪声的干扰
4、模拟输入:专用于ADC(模数转换器)通道,允许GPIO引脚接收模拟信号。
5、推挽输出:GPIO引脚可以输出高低电平信号,均具有驱动能力。数据寄存器为1时,上管(P-MOS)导通,输出高电平;数据寄存器为0时,下管(N-MOS)导通,输出低电平。
6、开漏输出:上管无效,只有低电平有驱动能力。数据寄存器为1时,下管断开,即高阻态;数据寄存器为0时,下管导通,输出低电平。可以作为通信协议的驱动方式。
7、复用推挽:引脚电平由片上外设控制
8、复用开漏:引脚电平由片上外设控制
ps:在8种模式下,只有模拟输入模式会关闭施密特触发器,这种模式使得GPIO能够直接接收模拟信号,而无需经过数字转换。