GPIO中的相关寄存器
对于GPIO具体的工作方式,转载一篇博客。
[转] 【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图).
GPIO中的寄存器
一个端口模式寄存器(GPIOx_MODER)
一个端口输出类型寄存器(GPIOx_OTYPER)
一个端口输出速度寄存器(GPIOx_OSPEEDR)
一个端口上拉下拉寄存器(GPIOx_PUPDR)
一个端口输入数据寄存器(GPIOx_IDR)
一个端口输出数据寄存器(GPIOx_ODR)
一个端口置位/复位寄存器(GPIOx_BSRR)
一个端口配置锁存寄存器(GPIOx_LCKR)
两个复用功能寄存器(低位GPIOx_AFRL& GPIOx_AFRH)
具体配置
1. 端口模式寄存器(GPIOx_MODER)
该寄存器有32位,每2位控制一个IO口
2.端口输出类型寄存器(GPIOx_OTYPER)
只用到低16位,1位控制一个IO
3.端口输出速度寄存器 (GPIOx_OSPEEDR)
同理,也是两位配置一个IO
4. 端口上拉/下拉寄存器 (GPIOx_PUPDR)
同上面一样,不再赘述。
5. 端口输入数据寄存器 (GPIOx_IDR)
低16位,只读,读取IO状态
6. 端口输出数据寄存器 (GPIOx_ODR)
低16位,设置1输出高电平,设置2输出低电平
7. 端口置位/复位寄存器 (GPIOx_BSRR)
高16位,写1复位,低16位,写1置位
8. 端口配置锁定寄存器 (GPIOx_LCKR)
不太了解
9. 复用功能低位寄存器 (GPIOx_AFRL)
用于引脚复用,4位控制
AFL0 - AFL7和GPIOx0 - GPIOx7一一对应
10. 复用功能高位寄存器 (GPIOx_AFRH)
用于引脚复用,4位控制
AFH8 - AFH15和GPIOx8 - GPIOx15一一对应
IO口的复用功能可以查询 “数据手册”复用表Table9
复用表
e.g.
GPIOA9、GPIOA10分别对应:
GPIOA->AFR[1] |= 7<<4;
GPIOA->AFR[1] |= 7<<8
7表示AF7,为复用数据,4和8表示复用GPIO的引脚位置
时钟使能
由于截图空间有限,只截取了部分,具体请参考STM32F4xx中文参考手册6.3.12
位0 - 8是使能相关GPIO时钟,GPIOA-GPIOI,置1使能
小结
本文仅对相关寄存器进行说明,欢迎指正。