C2000 GPIO 配置笔记

1. GPIO 配置核心

C2000 的 GPIO 配置主要分三步:

复制代码
选择引脚功能
↓
设置输入/输出方向
↓
配置上拉、采样、输出电平

2. 常用寄存器

寄存器 作用
GPAMUX / GPBMUX 选择普通 GPIO 或外设功能
GPADIR / GPBDIR 设置输入 / 输出方向
GPAPUD / GPBPUD 设置上拉是否使能
GPAQSEL / GPBQSEL 设置输入采样方式
GPASET / GPBSET 输出置 1
GPACLEAR / GPBCLEAR 输出清 0
GPATOGGLE / GPBTOGGLE 输出翻转
GPADAT / GPBDAT 读取当前电平

3. MUX 功能选择

每个 GPIO 一般用 2 bit 选择功能,所以要用二进制理解:

MUX 值 十进制写法 含义
00 0 普通 GPIO
01 1 外设功能 1
10 2 外设功能 2
11 3 外设功能 3

也就是说:

复制代码
00、01、10、11
一共 4 种功能选择

具体 01 / 10 / 11 对应哪个外设,要查芯片手册里的 GPIO MUX 表。

例子

ini 复制代码
EALLOW;

// A 组 GPIO:GPIO0 ~ GPIO31
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;   // 00:GPIO0 作为普通 GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 3;   // 11:GPIO1 选择外设功能 3

// B 组 GPIO:GPIO32 ~ GPIO63
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0;  // 00:GPIO32 作为普通 GPIO
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3;  // 11:GPIO34 选择外设功能 3

EDIS;

注意:配置 GPIO 控制寄存器时,通常必须放在 EALLOW;EDIS; 之间。
EALLOW 表示允许修改受保护寄存器,EDIS 表示关闭修改权限。没有 EALLOW,有些配置可能写不进去。


4. GPIO 分组规律

GPIO 范围 MUX 寄存器
GPIO0 ~ GPIO15 GPAMUX1
GPIO16 ~ GPIO31 GPAMUX2
GPIO32 ~ GPIO47 GPBMUX1
GPIO48 ~ GPIO63 GPBMUX2

简单记:

复制代码
GPA 管 GPIO0 ~ GPIO31
GPB 管 GPIO32 ~ GPIO63
每 16 个 GPIO 用一个 MUX 寄存器

5. 配置 GPIO 输出

GPIO0 输出 LED 为例:

ini 复制代码
EALLOW;

// 选择普通 GPIO 功能
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;

// 设置为输出
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;

// 可选:关闭上拉
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;

EDIS;

输出控制:

ini 复制代码
GpioDataRegs.GPASET.bit.GPIO0 = 1;      // 输出高电平
GpioDataRegs.GPACLEAR.bit.GPIO0 = 1;    // 输出低电平
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;   // 翻转电平

6. 配置 GPIO 输入

GPIO0 输入按键 为例:

ini 复制代码
EALLOW;

// 选择普通 GPIO 功能
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;

// 设置为输入
GpioCtrlRegs.GPADIR.bit.GPIO0 = 0;

// 使能上拉
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;

// 输入同步采样
GpioCtrlRegs.GPAQSEL1.bit.GPIO0 = 0;

EDIS;

读取输入:

scss 复制代码
if(GpioDataRegs.GPADAT.bit.GPIO0 == 0)
{
    // GPIO0 为低电平
}

7. 配置外设引脚

比如把 GPIO0 配成 EPWM1A

ini 复制代码
EALLOW;

// GPIO0 选择外设功能 1:EPWM1A
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;

EDIS;

注意:

复制代码
MUX 只是把引脚切到 EPWM1A。
真正的 PWM 频率、周期、占空比,还要配置 EPwm1Regs。

8. 总结

css 复制代码
GPIO 配置 = EALLOW + MUX 选功能 + DIR 设方向 + PUD/QSEL 配输入特性 + DAT/SET/CLEAR/TOGGLE 读写电平

普通 GPIO 重点看:

复制代码
MUX、DIR、DAT

外设引脚重点看:

复制代码
MUX + 对应外设寄存器

相关推荐
Sakuyu434682 小时前
STM32基础
stm32·单片机·嵌入式硬件
gscsded2 小时前
C2000 CPU Timer 学习笔记
单片机
iCxhust3 小时前
AD0808调试笔记
笔记·单片机·嵌入式硬件·操作系统·微机原理·8088单板机
木子单片机4 小时前
基于51单片机的步进电机调速系统设计
单片机·嵌入式硬件·51单片机·keil
三易串口屏5 小时前
实验10 物理按键实验
单片机·51单片机·串口屏·串口协议·uart 通信·嵌入式 ui
深圳光特通信豆子5 小时前
10Mb/s TTL单模双纤光收发模块技术规格手册
单片机·嵌入式硬件
一路往蓝-Anbo5 小时前
第六章:RTOS 任务 —— 任务逻辑与并发的 TDD 路径
网络·stm32·单片机·嵌入式硬件·tdd
星夜夏空995 小时前
STM32单片机学习(20) —— 利用中断实现串口通信(填前面的坑)
stm32·单片机·学习
wengqidaifeng5 小时前
2026年电赛校赛备战MSPM0G3507+keil讲解(上)-----2025年电赛E题小车篇
单片机·嵌入式硬件·电赛