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.

28335中的SCI通信

请问技术支持,我使用28335进行SCI通信时,中断接收,但是接收到数据后,不把他读走,下次接收到数据无法进入中断函数里面。

此外,我用fifo接收时,当数据满足fifo个数时,标志位会变化,但是无法进入中断函数。

  • 您是否有清标志位:   

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

        PieCtrlRegs.PIEACK.all|=0x100;       // Issue PIE ack

  • 这些情况应该都是配置问题和标志位问题

  • 请问如果我不把fifo的数据读走,那么清除了标志位他还会再进入中断么?

  • 不使用fifo,直接中断接收。使用的是scic,但是 中断不把ScicRegs.SCIRXBUF.all的数据读走,此后就无法进入到中断中了。代码如下:

    GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
    i++;

    PieCtrlRegs.PIEACK.all |= M_INT8;

  • quanfa he 说:
    不使用fifo,直接中断接收。使用的是scic,但是 中断不把ScicRegs.SCIRXBUF.all的数据读走,此后就无法进入到中断中了。

    不读走SCIRXBUF中的数据的话,RXRDY标志不会自动清掉的,无法判断是否有新数据,也就无法再进中断了