使用28335中断接收数据的时候,一个一个的发送接收为正常的,例如发送01,接收为01。但是发送例如010203,接收为01FF,并且只会进入两次次中断。
interrupt void SCIARX_IRQn(void)
{
*PCData = ScibRegs.SCIRXBUF.all;
PCData++;
PieCtrlRegs.PIEACK.all |= 0x100; // Issue PIE ack
}
接收代码如上图,我需要添加什么来保证接收的正常吗?
EALLOW;
PieVectTable.SCIRXINTB = &SCIARX_IRQn;
EDIS;
InitScibGpio();
ScibRegs.SCICCR.all = 0x0007; // 1 stop bit, No loopback
ScibRegs.SCICTL1.all = 0x0003; // Relinquish SCI from Reset
ScibRegs.SCICTL2.bit.RXBKINTENA = 1;
ScibRegs.SCIHBAUD =scihbaud; // 9600 baud @LSPCLK = 37.5MHz.
ScibRegs.SCILBAUD =scilbaud;
// SciaRegs.SCICCR.bit.LOOPBKENA =1; // Enable loop back
ScibRegs.SCIFFTX.bit.SCIFFENA = 0;
ScibRegs.SCICTL1.bit.SWRESET=1;//Relinquish SCI from Reset
PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE block
PieCtrlRegs.PIEIER9.bit.INTx3 = 1;
IER |= M_INT9;
EINT;
ERTM;
初始化如上