28027上电串口接收报错

2019-08-08 23:09发布

问题在“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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
dirtwillfly
1楼-- · 2019-08-09 03:51
elkite
2楼-- · 2019-08-09 06:13
 精彩回答 2  元偷偷看……
gaochy1126
3楼-- · 2019-08-09 06:28
优化方式不同了吧。
gaochy1126
4楼-- · 2019-08-09 11:17
重新复位能行,不是上电复位么?
dirtwillfly
5楼-- · 2019-08-09 13:36
我猜楼主的上电复位可能有问题
elkite
6楼-- · 2019-08-09 14:28
上电复位有问题,但是只是影响串口接收,其他暂时还没有发现问题。

按一下硬件复位按钮,就正常了。
我用的是C2000 Launchpad的开发板,F28027。。

暂时解决方案,在程序里面,检测到接收寄存器错误时,复位了一下串口寄存器SW RESET,暂时正常。但是,肯定还是有问题,所以在这里向大家请教一下。

一周热门 更多>