1.GPIO的输入输出模式
1.1 输出模式可控制端口的输出高低电平,用于LED驱动、蜂鸣器控制、模拟通信协议(SPI、I2C)等;
1.2 输入模式下可读取端口的高低电平,用于读取按键输入、外接模块电平信号输入,ADC电压采集、模拟通信协议接收数据等
2、GPIO基本结构
每个GPIO端口对应16个引脚。例如GPIOA(PA0-PA15)
内核CPU可以通过APB2总线对寄存器读写,完成输出电平和读取电平的功能。
3、GPIO功能框图
施密特触发器:具有滤波的作用,让通过的电平输出稳定的高低电压。
4、GPIO的八种工作模式
5、推挽输出
6、开漏输出
7.复用功能推挽开漏输出
复用功能模式中,输出使能,输出速度可配置,可工作在开漏及推挽模式, 但是输出信号源于其它外设输出数据寄存器 GPIOx_ODR 无效;输入可用,通过输入数据寄存器可获取 I/O 实际状态,但一般直接用外设的寄存器来获取该数据信号。
8.GPIO寄存器
通过对 GPIO 寄存器写入不同的参数,就可以改变 GPIO 的工作模式,具体查阅对应的手册,这里以《STM32F10X-中文参考手册》为例。
在 GPIO 外设中,控制端口高低控制寄存器 CRH 和 CRL 可以配置每个 GPIO 的工作模式和工作的速度,每 4 个位控制一个 IO,CRH 控制端口的高八位,CRL 控制端口的低 8 位,具体的看 CRH 和 CRL 的寄存器描述