1,初始化SCI
void init_SCIA(){
// Setup Pin Options
GPIO_SetupPinMux(8, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(8, GPIO_INPUT, GPIO_PUSHPULL);
GPIO_SetupPinMux(9, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(9, GPIO_OUTPUT, GPIO_ASYNC);
// Setup SCIA Baud
// @LSPCLK = 50 MHz (200 MHz SYSCLK)
//[HBAUD高位波特率设置寄存器]+[LBAUD低位]=[LSPCLK低速外设时钟]/[BAUD波特率]/8
// SciaRegs.SCIHBAUD.all = 0x0002;
// SciaRegs.SCILBAUD.all = 0x008B;//b=9600
// SciaRegs.SCIHBAUD.all = 0x01;
// SciaRegs.SCILBAUD.all = 0x45;//波特率19200
// SciaRegs.SCIHBAUD.all = 0x00;
// SciaRegs.SCILBAUD.all = 0xA3;//波特率38400
// Setup SCIA_REGS
SciaRegs.SCIHBAUD.all = 0x00;
SciaRegs.SCILBAUD.all = 0x36;//b=115200
SciaRegs.SCICCR.bit.SCICHAR=7;//8位数据位
SciaRegs.SCICTL1.bit.RXENA=1;//接收使能
SciaRegs.SCICTL1.bit.TXENA=1;//发送使能
SciaRegs.SCICTL1.bit.SWRESET=1;//重启
SciaRegs.SCIFFTX.bit.SCIFFENA=1;//FIFO功能使能
}
2,SCI寄存器定义
3,测试SciFifo功能
//该段代码放置在定时器中断,每31.25ms执行一次
//PC使用串口调试工具,硬件连接好PC与dsp
//如pc无发送,则会接收到0XAB
//如PC发送,DSP会返回0XAB+DSP发送内容
//PC一次性最多发16*2个字节,超过时,dsp只能接收到最后发的16*2个字节
SciaRegs.SCITXBUF.all=0xAB;
// SciaRegs.SCITXBUF.all=0xCD;
for(i=1;1<20;i++)
{
if(SciaRegs.SCIFFRX.bit.RXFFST>=1)
{
SciaRegs.SCITXBUF.all=SciaRegs.SCIRXBUF.all;
}
else{
break;
}
}
//end
//该段代码放置在定时器中断,每31.25ms执行一次
//PC使用串口调试工具,硬件连接好PC与dsp
//如pc无发送,则会接收到0XAB
//如PC发送,DSP会返回0XAB+DSP发送内容
//PC一次性最多发16*2个字节,超过时,dsp只能接收到最后发的16*2个字节