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 + 对应外设寄存器

​

相关推荐
国科安芯7 小时前
立方星与微纳卫星综合电子微型化趋势下的抗辐射MCU选型综述
人工智能·单片机·嵌入式硬件·mcu·risc-v·抗辐射
xunyan62347 小时前
3-1 独立按键控制LED亮灭(SDCC + Notepad++ + STC-ISP/普中ISP)
单片机·嵌入式硬件·接口隔离原则
WD137298015578 小时前
WD5030L,为充电桩、工业设备、5G 基站、车载系统、消费电子提供电源,7-30V 的宽压输入
stm32·单片机·嵌入式硬件·5g·车载系统·51单片机
创界工坊工作室9 小时前
30-基于STM32的小麦烘干塔温度控制系统设计
stm32·单片机·嵌入式硬件·proteus
Zwawa10 小时前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·单片机·嵌入式
smartpi_ai11 小时前
51 单片机写好了,大模型语音怎么接?17T 全驱动的现成方案、双板串口分工的边界与画板前的三项硬件确认
单片机·嵌入式硬件·学习
我先去打把游戏先11 小时前
NimBLE是什么-ESP32蓝牙协议栈详解
单片机·嵌入式硬件·ubuntu
Gongsion12 小时前
30V输入耐压|1.5μA超低静态电流|200mA输出,CSM52系列:线性稳压器LDO,12V母线转3.3V/5V传感器、MCU弱电支路可靠稳压方案
单片机·嵌入式硬件·车载系统·无人机·智能家居
芯岭技术16 小时前
XL2400T收发芯片,2.4G无线荧光棒控光解决方案,+PA距离可达700M
单片机·嵌入式硬件·物联网
艾芯微科技16 小时前
ETA1637S2G|钰泰同步升压 LED 背光驱动 SOT23-6,0.1% 超低占空比 PWM 调光
网络·单片机·嵌入式硬件·集成测试·51单片机