RX - GPIO
RX - GPIO
睿兴RX32S11参考手册:https://www.rxtek-icore.com/media/upload/2024/3/RX32S11_Reference_Manual_V2.pdf
———————————————————————————————————————————
GPIO的特性
每个通用 I/O 都有以下寄存器:
- 1 个 16 位 端口功能配置寄存器(GPIOx_IOCFG)
- 1 个 16 位 端口数据寄存器 (GPIOx_PTDAT)
- 1 个 32 位 端口上下拉配置寄存器(GPIOx_PUPDN)和
- 1 个 16 位 端口复位寄存器 (GPIOx_PTCLR)
所有 GPIO 共用以下寄存器:
- 1 个 16 位端口高阻态控制寄存器(GPIOx_HIIPM)
- 2 个 复用功能配置寄存器(GPIOx_AFCFG1 和 GPIOx_AFCFG2)
GPIO功能:
- 浮空输入
- 上拉输入
- 下拉输入
- 模拟输入
- 开漏输出
- 推挽输出
- 复用开漏输出
- 复用推挽输出
每个 I/O 端口位可以自由编程
I/O 端口寄存器支持字、半字或字节访问。


GPIO默认状态
所有I/O端口默认不启用复用功能,仅作为普通GPIO,默认被配置成浮空输入模式。
调试接口的引脚默认被置于复用模式,也就是调试功能:
-
PA0(SWIO):浮空输入,用于双向数据信号(SWDIO)。
-
PA1(SWCLK):浮空输入,用于时钟信号(SWCLK)。
I/O 引脚的多路复用
芯片的 I/O 引脚通常数量有限,但芯片内部可能有多个外设模块(如 UART、SPI、I2C、PWM 等),每个外设都需要占用一些引脚。
为了在有限的引脚上支持更多功能,芯片采用 多路复用(Multiplexing) 机制,即 一个物理引脚可以切换连接到不同的内部外设,但 同一时间只能连接一个功能。
每个 I/O 引脚都有一个独立的多路复用器(MUX), 它相当于一个电子开关,可以选择将引脚连接到 某个外设功能 或 普通 GPIO,同一时间只能选择其中一种功能。
多路复用器(MUX)默认选在复用功能 0(SEL0),可以通过 GPIOx_IOCFG 寄存器将 I/O 配置成复用功能模式。
多路复用器(MUX)可以通过 GPIOx_AFCFG1 和 GPIOx_AFCFG2 进行控制,选择不同的复用功能。
该芯片不仅支持 固定引脚复用(通过 GPIOx_AFCFG 选择功能),还支持 外设功能动态映射到不同引脚,这在小型封装(如 QFN32、TSSOP20)中尤为重要。
要将 I/O 配制成所需的复用功能,请按照以下步骤操作:
1、调试接口处理:在芯片复位后,会将调试引脚指定为专用引脚,可供调试器立即使用。
2、GPIO基础配置:使用 GPIOx_IOCFG 寄存器将所需的 I/O 配置为 GPIO 或功能 PIN。
3、外设复用配置:
– 使用 GPIOx_AFCFG1 或 GPIOx_AFCFG2 将 I/O 连接到指定的复用功能上。
– 使用 GPIOx_PTDIR,GPIOx_PUPDN 和 GPIOx_PTDAT 寄存器分别配置方向、上拉/下拉和 数据输入输出。
– 使用 GPIOx_IOCFG 寄存器将 I/O 配置为复用模式。
I/O 端口控制寄存器
每个 GPIO 端口有 2 个 32 位内存映射控制寄存器(GPIOx_AFCFG 和 GPIOx_PUPDN)
1. GPIOx_AFCFG (Alternate Function Configuration Register)
-
功能:用于配置I/O口的复用功能
-
位数:32位
-
控制能力:最多可配置10个I/O口
-
作用:每个I/O口可以通过该寄存器设置为特定的复用功能(如UART、SPI、I2C等外设功能)
2. GPIOx_PUPDN (Pull-up/Pull-down Configuration Register)
-
功能:用于配置I/O口的上拉/下拉电阻
-
位数:32位
-
控制能力:最多可配置10个I/O口
-
作用:
-
可以选择是否启用上拉/下拉电阻
-
可以配置输入方向时的上拉/下拉状态
-
可以配置输出方向时的驱动特性(如果支持)
-
I/O 端口数据寄存器
GPIOx_PTDAT 是一个 16 位内存映射数据寄存器,用于存储 GPIO 端口的输入/输出数据
GPIOx_PTDAT仅在端口配置为 GPIO 功能 或 支持数字输入的复用功能时有效
输出模式:可读可写
写入GPIOx_PTDAT寄存器的值会直接驱动引脚电平(如写1输出高,写0输出低)。
输入模式:只读
GPIOx_PTDAT寄存器会在每个APB时钟周期采样引脚的实际电平,从而实现实时读取外部信号。
I/O 复用功能输入/输出
GPIOx_AFCFG1 和 GPIOx_AFCFG2 是用于 灵活配置 I/O 复用功能(Alternate Function, AF) 的寄存器,允许用户将不同的外设功能(如 UART、SPI、PWM 等)动态映射到指定的 GPIO 引脚。
多路复用控制:
通过 GPIOx_AFCFG1 和 GPIOx_AFCFG2 两个寄存器,每个 I/O 引脚可以独立选择 多种外设功能
输入/输出共用通道:
对同一 I/O 引脚,复用功能的 输入和输出路径 共享同一个 AF 选择信号(即无需单独配置输入/输出方向,由外设自动管理)。
外部中断/唤醒线
部分 GPIO 端口支持 外部中断(EXTI, External Interrupt) 功能
外部中断功能适用场景:
-
按键检测(边沿触发)
-
传感器信号监测(如红外、霍尔传感器)
-
低功耗模式下唤醒 MCU(如 RTC 闹钟、外部事件唤醒)
要使用外部中断功能,需要将端口配置为输入模式。
GPIO 输入模式配置

当 I/O 端口被配置为输入模式 时,其内部电路行为如下
1、输出缓冲区禁用
2、施密特触发器输入激活
3、由 GPIOx_PUPDN 寄存器配置上拉和下拉电阻:
• 上拉:引脚默认高电平
• 下拉:引脚默认低电平
• 浮空:无电阻(需外部驱动)
4、每个 APB 时钟周期,引脚电平被采样到输入数据寄存器(GPIOx_PTDAT)。
5、通过读取 GPIOx_PTDAT 获取当前引脚状态(0 或 1)。
GPIO 输出模式配置
当 I/O 端口被配置为输出模式 时,
1、输出缓冲区已启用:
2、若是开漏模式(P-MOS 未被开启):
- 输出寄存器中的“0”开启 N-MOS → 输出低电平
- 输出寄存器中的“1”使端口处于 Hi-Z 状态 → 输出高阻态(Hi-Z)
3、若是推挽模式:
- 输出寄存器中的“0”开启 N-MOS → 输出低电平
- 输出寄存器中的“1”开启 P-MOS → 输出高电平
4、施密特触发器输入激活
更多推荐



所有评论(0)