我想让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=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=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;
]