This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28377S:TMS320F28377S

Guru**** 2470830 points
Other Parts Discussed in Thread: TMS320F28377S

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/816694/tms320f28377s-tms320f28377s

器件型号:TMS320F28377S

您好!

我正在尝试 使用以下 GPIO 在 TMS320F28377S 器件上启用外部中断

XINT1 --> GPIO66

XINT2 --> GPIO67

1. XINT3 --> GPIO68

我以相同的方式初始化了所有三个中断。 XINT1和 XINT2正常工作、但无法启动与 GPIO68关联的 XINT3。 我还使用 XINT2验证了 GPIO68、工作正常。

因此硬件或 GPIO68映射没有问题。 我在组1 IER 下配置了全部三个中断。  

请尽快解决问题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    XINT3在12.1英寸 PIE 上映射(不同于 XINT1/XINT2)。 请查看您是否正确配置了它。

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vivek Singh:

    感谢您的快速回复。

    我在 init 函数中使用以下配置  

    EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
    PieVectTable.XINT1_INT =&XINT1_ISR;
    PieVectTable.XINT2_INT =&XINT2_ISR;
    PieVectTable.XINT3_INT =&xint3_ISR;
    EDIS;//这是禁用写入 EALLOW 受保护寄存器所必需的

    PieCtrlRegs.PIECTRL.bit.ENPIE = 1;//启用 PIE 块
    PieCtrlRegs.PIEIER1.bit.INTx4 = 1;//启用 PIE 组1 INT4
    PieCtrlRegs.PIEIER1.bit.INTx5 = 1;//启用 PIE 组1 INT5
    PieCtrlRegs.PIEIER12.bit.INTx1 = 1;//启用 PIE 组1 INT5

    IER |= M_INT1;
    IER |= M_INT12;

    EALLOW;
    GpioCtrlRegs.GPCMUX1.bit.GPIO66=0;// GPIO
    GpioCtrlRegs.GPCDIR.bit.GPIO66 = 0;//输入
    GpioCtrlRegs.GPCQSEL1.bit.GPIO66=0;// XINT1同步到 SYSCLKOUT

    GpioCtrlRegs.GPCMUX1.bit.GPIO67 = 0;// GPIO
    GpioCtrlRegs.GPCDIR.bit.GPIO67 = 0;//输入
    GpioCtrlRegs.GPCQSEL1.bit.GPIO67 = 0;// XINT2同步到 SYSCLKOUT

    GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;// GPIO
    GpioCtrlRegs.GPCDIR.bit.GPIO68 = 0;//输入
    GpioCtrlRegs.GPCQSEL1.bit.GPIO68=0;// XINT3同步到 SYSCLKOUT
    EDIS;

    GPIO_SetupXINT1Gpio (66);
    GPIO_SetupXINT2Gpio (67);
    GPIO_SetupXINT3Gpio (68);


    XintRegs.XINT1CR.bit.polarity = 0;//下降边沿中断
    XintRegs.XINT2CR.bit.polarity = 0;//下降边沿中断
    XintRegs.XINT3CR.bit.polarity = 0;//下降边沿中断

    XintRegs.XINT1CR.bit.ENABLE = 1;//启用 XINT1
    XintRegs.XINT2CR.bit.ENABLE = 1;//启用 XINT2
    XintRegs.XINT3CR.bit.ENABLE = 1;//启用 XINT3

     

    请进行审核、如果有任何问题、请告知我。

     

    此致、

    Stalin  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Stalin、

    该代码看起来不错。 您能否在"XintRegs.XINT1CR.bit.polarity = 0;//下降沿中断"设置断点、并在 CCS 寄存器视图中检查"INPUT6SELECT"(XINT3映射到 INPUTXBAR 的 INPUT6)寄存器中的配置。

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vivek Singh:

    感谢您的参与。 BTW、我们已经解决了 XINT3问题。 除了上述初始化之外、我们还必须进行配置  

     GpioCtrlRegs.GPCGMUX1.bit.GPIO68=0;      // GPIO。

    我并不是很了解原因、但必须配置 CGMUX 和 CMUX、尤其是用于 XINT3中断。  

    此致、

    Stalin   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Stalin、

    很高兴知道您能够找到问题。 不过、这很奇怪、因为该字段的默认值应为"0"、除非您在代码中的某个位置进行了更改。 在代码中将该位设置为"0"之前、您能否通过 CCS 寄存器视图检查该位的值?

    此致、

    Vivek Singh