GPIO 工作方式
I/O structure中带FT的IO口是支持5V容忍的
四种输入模式
1. 输入浮空
2. 输入上拉
3. 输入下拉
4. 模拟输入
四种输出模式
1.开漏输出(带上拉或者下拉)
只可以输出强低电平,高电平得靠外部电阻拉高.输出端相当于三极管的集电极,要得到高电平状态需要上拉电
阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)
2.开漏复用功能(带上拉或者下拉)
3.推挽式输出(带上拉或者下拉)
可以输出强高低电平,连接数字器件
4.推挽式复用功能(带上拉或者下拉)
四种最大输出速度
1. 2MHZ
2. 25MHZ
3. 50MHZ
4. 100MHZ
每组GPIO端口的寄存器包括10个寄存器
1.一个端口模式寄存器(GPIOx_MODER) 32位
2.一个端口输出类型寄存器(GPIOx_OTYPER) 32位
3.一个端口输出速度寄存器(GPIOx_OSPEEDR) 32位
4.一个端口上拉下拉寄存器(GPIOx_PUPDR) 32位
5.一个端口输入数据寄存器(GPIOx_IDR) 32位
6.一个端口输出数据寄存器(GPIOx_ODR) 32位
读→分析→写的过程,对于实时操作系统里面时时会有一些误操作
7.一个端口置位/复位寄存器(GPIOx_BSRR)
直接操作每个位,不同于ODR寄存器
8.一个端口配置锁存寄存器(GPIOx_LCKR)
9.两个复位功能寄存器(GPIOx_AFRL GPIOx_AFRH)
如果配置一个IO口需要2个位,那么刚好32位寄存器配置一组IO(一组有16个IO口)
如果配置一个IO口只要1个位,一般高16位保留
BSRR寄存器32位分为:
低16位BSRRL
配置一组IO口的16个IO口的置位状态(1)
高16位BSRRH
配置一组IO口的16个IO口的复位状态(0)
所有的IO口都可以作为中断输入