问题在“F28027串口FIFO收发中断问题”有描述。
写到flash后,重新上电,串口接收报错,导致无法接收数据,发送正常。
报错:寄存器SCIRXST-RX ERROR 1,寄存器SCIRXBUF-SCIFFFE/SCIFFPE 1
按一下复位按钮,接收就正常了。这是啥情况哦??有兄弟碰到过没有?
串口初始化代码:
void InitSci(void)
{
// Initialize SCI-A:
SciaRegs.SCICCR.all = 0x0007; // 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SciaRegs.SCICTL1.all = 0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
// Disable RXRDY/BRKDT/TXRDY interrupt
SciaRegs.SCICTL2.bit.TXINTENA = 0;
SciaRegs.SCICTL2.bit.RXBKINTENA = 0;
SciaRegs.SCIHBAUD = 0x0000;
SciaRegs.SCILBAUD = SCI_PRD; // 38400
// FIFO enable configure
SciaRegs.SCIFFTX.all = 0xC020;
SciaRegs.SCIFFRX.all = 0x0021;
// Disable FIFO interrupt
SciaRegs.SCIFFTX.bit.TXFFIENA = 0;
SciaRegs.SCIFFRX.bit.RXFFIENA = 0;
SciaRegs.SCIFFCT.all = 0x00;
SciaRegs.SCICTL1.bit.SWRESET = 1; // Relinquish SCI from Reset
SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
按一下硬件复位按钮,就正常了。
我用的是C2000 Launchpad的开发板,F28027。。
暂时解决方案,在程序里面,检测到接收寄存器错误时,复位了一下串口寄存器SW RESET,暂时正常。但是,肯定还是有问题,所以在这里向大家请教一下。
一周热门 更多>