工具/软件:Code Composer Studio
您好~
我不熟悉 TI MCU。
当前我正在使用 TI MCU 处理小型项目。
对于我的项目、我需要3个外部中断。
因此、我为 XINT1、XINT2和 XINT3分配了3个 GPIO (GPIO3、GPIO4和 GPIO5)
我的配置为:
-硬件:LAUNCHXL-28027
-频率:60MHz
3个用于外部中断的 GPIO:XINT1 (GPIO3)、XINT2 (GPIO5)、XINT3 (GPIO4)
其中、XINT1和 XINT2正在工作、但永远不会发生 XINT3。
发生什么事了、如何修复?
请告诉我。
提前通知您。
-在-
我的代码如下:
===
EALLOW;
PieVectTable.XINT1 =&XINT1_ISR;
PieVectTable.XINT2 =&XINT2_ISR;
PieVectTable.XINT3 =&xint3_ISR;
EDIS;
//在 PIE 中启用 XINT1、XINT2和 XINT3:组1中断4、5和组12中断1
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;//启用 PIE 块
PieCtrlRegs.PIEIER1.bit.INTx4 = 1;//启用 PIE 组1 INT4 -> XINT1
PieCtrlRegs.PIEIER1.bit.INTx5 = 1;//启用 PIE 组1 INT5 --> XINT2
PieCtrlRegs.PIEIER12.bit.INTx1 = 1;//启用 PIE 组12 INT1 --> XINT3
IER |= M_INT1 | M_INT12;//启用 CPU 中断1和12
EINT;//启用全局中断 INTM
ERTM;
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0;// GPIO3 -通用 I/O
GpioCtrlRegs.GPADIR.bit.GPIO3 = 0;//输入
GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 1;//限制条件00:同步到 SYSCLK、01:3个采样、10:6个采样、11:异步
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0;//采样周期= 510 x Tsysclkout = 510 x 16.67us = 85us
EDIS;
// GPIO3是 XINT1
EALLOW;
GpioIntRegs.GPIOXINT1SEL.ALL = 3;// XINT1为 GPIO3
EDIS;
//设置 GPIO4
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0;// GPIO4 -通用 I/O
GpioCtrlRegs.GPADIR.bit.GPIO4 = 0;//输入
GpioCtrlRegs.GPAQSEL1.bit.GPIO4 = 1;//限制条件00:同步到 SYSCLK、01:3个采样、10:6个采样、11:异步
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0;//采样周期= 510 x Tsysclkout = 510 x 16.67us = 85us
EDIS;
// GPIO4是 XINT3
EALLOW;
GpioIntRegs.GPIOXINT3SEL.ALL = 4;// XINT3为 GPIO4
EDIS;
//设置 GPIO5
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO5=0;// GPIO5 -通用 I/O
GpioCtrlRegs.GPADIR.bit.GPIO5 = 0;//输入
GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 1;//限制条件00:同步到 SYSCLK、01:3个采样、10:6个采样、11:异步
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0;//采样周期= 510 x Tsysclkout = 510 x 16.67us = 85us
EDIS;
// GPIO5是 XINT2
EALLOW;
GpioIntRegs.GPIOXINT2SEL.ALL = 5;// XINT2为 GPIO5
EDIS;
//配置 XINT1
XIntertRegs.XINT1CR.bit.Polarity = 0;// 0:下降、1:上升、2:下降、3:两者
XIntertRegs.XINT1CR.bit.ENABLE = 1;//启用 XINT1
//配置 XINT2
XIntertRegs.XINT2CR.bit.Polarity = 0;// 0:下降、1:上升、2:下降、3:两者
XIntertRegs.XINT2CR.bit.ENABLE = 1;//启用 XINT2
//配置 XINT3
XIntertRegs.XINT3CR.bit.Polarity = 0;// 0:下降、1:上升、2:下降、3:两者
XIntertRegs.XINT3CR.bit.ENABLE = 1;//启用 XINT3
=