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.
#include "DSP281x_Device.h"
#include "DSP281x_Examples.h"
void scia_init(void);
void fifo_init(void);
interrupt void scia_rx_isr(void);
interrupt void scia_tx_isr(void);
char message[]={"this is 2812\n\r"};
void main(void)
{
InitSysCtrl();
EALLOW;
GpioMuxRegs.GPFMUX.all=0x0030;
EDIS;
DINT;
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
EALLOW;
PieVectTable.TXAINT=&scia_tx_isr;
PieVectTable.RXAINT=&scia_rx_isr;
EDIS;
PieCtrlRegs.PIEIER9.bit.INTx2=1;
PieCtrlRegs.PIEIER9.bit.INTx1=1;
IER|=M_INT9;
EINT;
ERTM;
fifo_init();
scia_init();
while(1) {
}
}
void scia_init()
{
SciaRegs.SCICCR.all =0x0007;
SciaRegs.SCICTL1.all =0x0003;
SciaRegs.SCICTL2.all =0x0003;
SciaRegs.SCIHBAUD =0x0001;
SciaRegs.SCILBAUD =0x00E7;
SciaRegs.SCICTL2.bit.TXINTENA =1;
SciaRegs.SCICTL2.bit.RXBKINTENA =1;
SciaRegs.SCICCR.bit.LOOPBKENA =0;
SciaRegs.SCICTL1.all =0x0023;
//SciaRegs.SCICTL1.bit.SWRESET =1;
}
void fifo_init()
{
SciaRegs.SCIFFTX.all =0xE060;
SciaRegs.SCIFFRX.all =0xE065;
SciaRegs.SCIFFCT.all =0x0000;
}
interrupt void scia_tx_isr(void)
{
int i;
for(i=0;i<16;i++)
SciaRegs.SCITXBUF=message[i];
PieCtrlRegs.PIEACK.all=PIEACK_GROUP9;
}
interrupt void scia_rx_isr(void)
{
int i;
char buffer[16];
for(i=0;i<16;i++)
buffer[i]=SciaRegs.SCIRXBUF.all;
if(strncmp(buffer,"Texas",5)==0)
{
SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
SciaRegs.SCIFFTX.bit.TXINTCLR=1;
}
SciaRegs.SCIFFRX.bit.RXFIFORESET=0;
SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP9;
}
在串口调试工具里发送Texas,等待dsp发送this is 2812\n\r,但是早调试工具里发送Texas,单步运行时,接收中断始终进不去,何解????