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.

[参考译文] TMS320F28069:SCI A RX 中断未被触发

Guru**** 2553370 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033898/tms320f28069-sci-a-rx-interrupt-not-triggered

器件型号:TMS320F28069
主题中讨论的其他器件:C2000WARE

__interrupt void
sciaRxFifoIsr(void)
{
    Uint16 i;
    for(i=0;i<2;i++)
    {
        rdataA[i]=SciaRegs.SCIRXBUF.all;  // Read data
    }
    rdata_pointA = (rdata_pointA) & 0x00FF;

    SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;   // Clear Overflow flag
    SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;   // Clear Interrupt flag

    PieCtrlRegs.PIEACK.all|=0x100;       // Issue PIE ack
}
   EALLOW;
   GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;   // GPIO42 = GPIO
   GpioCtrlRegs.GPBDIR.bit.GPIO34  = 1;   // GPIO42 = OUTPUT LED
   EDIS;

   PieCtrlRegs.PIECTRL.bit.ENPIE = 1;   // Enable the PIE block
   PieCtrlRegs.PIEIER9.bit.INTx1=1;     // PIE Group 9, INT1
   IER = 0x100;                         // Enable CPU INT
   EINT;

for(;;)

{}

}
void SCIA_INIT()
{
    SciaRegs.SCICCR.all =0x0007;
    SciaRegs.SCICTL1.all =0x0003;
    SciaRegs.SCICTL2.bit.TXINTENA =1;
    SciaRegs.SCICTL2.bit.RXBKINTENA =1;
    SciaRegs.SCIHBAUD = ((Uint16)SCI_PRD) >> 8;
    SciaRegs.SCILBAUD = SCI_PRD;

    SciaRegs.SCICTL1.all =0x0023;       // Relinquish SCI from Reset

}


当使用 Hyper 终端将任何字符发送到 launchpad 时、RX 中断会触发4次、仅提供0或255、之后不会触发。

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

    您好!

    值0-255是因为您设置了8位传输。 此外、可以根据 FIFO 深度设置中断触发。 我看不到您在代码中启用了 FIFO。 您可以根据应用用例启用 FIFO 并设置深度、使用该用例可以调整中断速率。

    谢谢、

    Aditya

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

    我想使用具有中断功能的 SCI、它可以从发送器侧接收2字节数据  
    第一个字节用于地址、第二个字节用于变量。

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

    您是否尝试了 C2000Ware 中提供的参考示例? 它配置为具有中断的2字节、但使用环回。 您可以配置不带环回的示例、以方便使用。

    Aditya

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

    由于我们尚未收到您关于此问题的反馈、我相信您已经能够解决此问题。 我现在将此主题标记为已解决。 如果您有任何其他疑问、请随时继续此处的讨论。 如果线程锁定、您始终可以提出新问题。

    Aditya