- 在TI的C2000系列微控制器(如DSP28335)中,GPIO引脚被组织成不同的端口(例如A、B、C等,A对应0到31),每个端口有自己的一组寄存器来控制和读取状态。
GPIO寄存器分类
1. 控制寄存器(Control Registers)
- 用于配置外设的功能和行为。它们通常包含位域,每个位或几位组合在一起控制某个特定的功能。例如,
GpioCtrlRegs
是一个典型的控制寄存器集合,用于配置GPIO引脚的方向、复用功能等。
struct GPIO_CTRL_REGS {
union GPACTRL_REG GPACTRL; // GPIO A Control Register (GPIO0 to 31)
union GPA1_REG GPAQSEL1; // GPIO A Qualifier Select 1 Register (GPIO0 to 15)
union GPA2_REG GPAQSEL2; // GPIO A Qualifier Select 2 Register (GPIO16 to 31)
union GPA1_REG GPAMUX1; // GPIO A Mux 1 Register (GPIO0 to 15)
union GPA2_REG GPAMUX2; // GPIO A Mux 2 Register (GPIO16 to 31)
union GPADAT_REG GPADIR; // GPIO A Direction Register (GPIO0 to 31)
union GPADAT_REG GPAPUD; // GPIO A Pull Up Disable Register (GPIO0 to 31)
Uint32 rsvd1;
union GPBCTRL_REG GPBCTRL; // GPIO B Control Register (GPIO32 to 63)
union GPB1_REG GPBQSEL1; // GPIO B Qualifier Select 1 Register (GPIO32 to 47)
union GPB2_REG GPBQSEL2; // GPIO B Qualifier Select 2 Register (GPIO48 to 63)
union GPB1_REG GPBMUX1; // GPIO B Mux 1 Register (GPIO32 to 47)
union GPB2_REG GPBMUX2; // GPIO B Mux 2 Register (GPIO48 to 63)
union GPBDAT_REG GPBDIR; // GPIO B Direction Register (GPIO32 to 63)
union GPBDAT_REG GPBPUD; // GPIO B Pull Up Disable Register (GPIO32 to 63)
Uint16 rsvd2[8];
union GPC1_REG GPCMUX1; // GPIO C Mux 1 Register (GPIO64 to 79)
union GPC2_REG GPCMUX2; // GPIO C Mux 2 Register (GPIO80 to 95)
union GPCDAT_REG GPCDIR; // GPIO C Direction Register (GPIO64 to 95)
union GPCDAT_REG GPCPUD; // GPIO C Pull Up Disable Register (GPIO64 to 95)
};
GPACTRL
- GPACTRL寄存器是TI的C2000系列微控制器中用于配置GPIO端口A引脚输入同步和滤波行为的一个关键寄存器。它允许开发者对GPIO引脚的输入信号进行更精细的控制,确保外部信号在采样前已经稳定,并且可以根据需要过滤噪声或毛刺。
//----------------------------------------------------
// GPIO A control register bit definitions */
// GPxCTRL寄存器单元内部被分成4组,分别是QUALPRD0~QUALPRD3(8位),每组8位,该8位对应8个GPIO引脚,有着各自相同的时钟周期。不同组之间时钟周期可以相同可以不同。https://blog.sina.com.cn/s/blog_a7c071b30102wp2c.html
struct