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.
我想让SCI 通过FIFO在不中断的情况下,一次存入8个数据。不知道下面的程序存在什么问题?谢谢!
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
void scia_fifo_init(void);
Uint16 rdataA[8];
void main(void)
{
Uint16 i;
InitSysCtrl();
InitSciaGpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
scia_fifo_init();
for(i=0;i<8;i++)
{
rdataA[i]=0;
}
while(1)
{
// while(SciaRegs.SCIRXST.bit.RXRDY !=1) { }
// a= SciaRegs.SCIRXBUF.all;
while (ScicRegs.SCIFFTX.bit.TXFFST != 8) {}
for(i=0;i<8;i++)
{
rdataA[i]=SciaRegs.SCIRXBUF.all;
}
}
}
void scia_fifo_init()
{
SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback
SciaRegs.SCICTL1.all =0x0003;
SciaRegs.SCICTL2.bit.TXINTENA = 1;
SciaRegs.SCICTL2.bit.RXBKINTENA =1;
SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.
SciaRegs.SCILBAUD =0x00E7;
SciaRegs.SCICCR.bit.LOOPBKENA=1;
SciaRegs.SCIFFTX.all=0xC028;
SciaRegs.SCIFFRX.all=0x0028;
SciaRegs.SCIFFCT.all=0x0;
SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset
SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
}