本文主要是介绍STM32F103RCT6的GPIO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
概述
IO口的基本结构
4种输入模式
输入浮空
输入上拉
输入下拉
模拟输入
4种输出模式
开漏输出
开漏复用功能
推挽式输出
推挽式复用功能
3种最大翻转速度
每组IO口包括的寄存器
端口复用
端口重映射
GPIO查看MODE、PIN、SPEED的可选项
概述
STM32F103RCT6
共4组IO口
16*3+3 = 51个IO口
GPIOA0 ~ A15
GPIOB0 ~ B15
GPIOC0 ~ C15
GPIOD0 ~ D2
IO口的基本结构
4种输入模式
输入浮空
输入上拉
上图中上面打叉的部分开关闭合,上拉电阻约为30至50k
输入下拉
与上类似
模拟输入
4种输出模式
开漏输出
开漏复用功能
推挽式输出
推挽式复用功能
3种最大翻转速度
2MHz
10MHz
50MHz
每组IO口包括的寄存器
- 两个32位配置寄存器,GPIOx_CRL GPIOx_CRH
- 两个32位数据寄存器,GPIOx_IDR GPIOx_ODR
- 一个32位置位/复位寄存器,GPIOx_BSRR
- 一个16位复位寄存器,GPIOx_BRR
- 一个32位锁存寄存器,GPIOx_LCKR
每个IO端口位允许自由编程,然后IO端口寄存器必须按32位字进行访问,不允许字节访问
对于一组IO口,每个IO口的配置需要寄存器的4位,每组一共16个IO口,因此需要寄存器的64位,由于STM32是32位的,所以分成了2个寄存器去配置
GPIOx_CRL:PA0~PA7
GPIOx_CRH:PA8~PA15
每个IO口的配置需要寄存器的4位,其中2位是模式位MODE,2位是配置位CNF
输入数据寄存器
GPIOA_IDR分别对应每一位,即GPIOx_IDR0对应PA0
输出数据寄存器
GPIOA_ODR与上类似
GPIOx_BSRR置位寄存器
其实就是控制下图红框中的部分
例如,我要操作某一位,使其置1,则只需要将这一位置1,其他位置0即可,与ODR寄存器不同的是,ODR寄存器给1就是1,给0就是0,BSRR给1就是1,给0不修改
通常只使用BSRR的低16位
GPIOx_BRR置位寄存器
类似
通常只使用BRR的低16位
端口复用
相当于是一个开关
端口重映射
方便布线,参考Datasheet里的Remap
STM32的所有IO口都可以作为中断输入
GPIO查看MODE、PIN、SPEED的可选项
类似地,查看PIN
查看SPEED
这篇关于STM32F103RCT6的GPIO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!