void InitSci(void)
{
//条件为SCIA的发送和接收GPIO引脚设置为SCITXDA引脚和SCIRXDA引脚
SciaRegs.SCICCR.bit.STOPBITS=0;//设定1位结束标志位
SciaRegs.SCICCR.bit.PARITYENA=0;//禁用奇偶校验功能
SciaRegs.SCICCR.bit.LOOPBKENA=0;//禁用回送测试功能
SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0;//设定SCIA工作于空闲线模式,用于DSP与PC通信,或DSP对单个DSP
SciaRegs.SCICCR.bit.SCICHAR=7;//设定SCIA有效数据位数8位
SciaRegs.SCICTL1.bit.TXENA=1;//SCIA发送引脚发送功能使能
SciaRegs.SCICTL1.bit.RXENA=1;//SCIA接收引脚接收功能使能
SciaRegs.SCIHBAUD=0;//波特率设置,查P320,设为19200,对应寄存器值ox00F3
SciaRegs.SCILBAUD=0xF3;
SciaRegs.SCIFFTX.bit.SCIFFENA=1;//开启SCIFIFO模式
SciaRegs.SCIFFTX.bit.TXINTCLR=1;//使能发送中断标志位清零功能,清零发送中断标志位
SciaRegs.SCIFFTX.bit.TXFFIENA=1;//使能SCIA之FIFO发送中断,CPU级中断在main内已使能
SciaRegs.SCIFFTX.bit.TXFFILIL=0;//发送FIFO中剩余0个数据,即当前一组16B以内数据发送完后,申请发送中断
SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;//使能接收溢出标志位清零功能,清零接收溢出标志位
//SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;//使能接收中断标志位清零功能,清零接收中断标志位
SciaRegs.SCIFFRX.bit.RXFFIENA=1;//使能SCIA之FIFO接收中断,CPU级中断在main内已使能
SciaRegs.SCIFFRX.bit.RXFFIL=16;//接收FIFO中断级位设为16,接收到16个数据后,申请接收中断
SciaRegs.SCIFFRX.bit.RXFIFORESET=0;//接收FIFO指针复位到0,并禁止接收
SciaRegs.SCIFFRX.bit.RXFIFORESET=1; //重启接收FIFO,开始从0号FIFO接收数据
SciaRegs.SCICTL1.bit.SWRESET=1;//软重启,将SCIA各标志位如TXDY,RXDY设到默认值,直到中断到来
}
|