28027上电串口接收报错

[复制链接]
2344|7
 楼主| elkite 发表于 2013-9-23 15: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;
}
dirtwillfly 发表于 2013-9-23 19:46 | 显示全部楼层
 楼主| elkite 发表于 2013-9-23 20:15 | 显示全部楼层
我当时也觉得很奇怪,为啥在RAM里面都是好的,Flash的debug模式也是好的。

现在想来是都是要点运行的原因。。后来想到是这个问题,在重新上电的时候,按了一下复位按钮,发现收就ok了。
现在暂时在程序里,加上 复位 串口的指令,SW RESET,暂时解决,但是肯定还是有问题。想请教一下。
我用的C2000LanuchPad的板子,跟S1和S3这样拨码有没有关系??或者还是串口初始化的问题。
gaochy1126 发表于 2013-9-23 23:30 | 显示全部楼层
优化方式不同了吧。
gaochy1126 发表于 2013-9-23 23:30 | 显示全部楼层
重新复位能行,不是上电复位么?
dirtwillfly 发表于 2013-9-24 13:55 | 显示全部楼层
我猜楼主的上电复位可能有问题
 楼主| elkite 发表于 2013-9-24 16:25 | 显示全部楼层
上电复位有问题,但是只是影响串口接收,其他暂时还没有发现问题。

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

暂时解决方案,在程序里面,检测到接收寄存器错误时,复位了一下串口寄存器SW RESET,暂时正常。但是,肯定还是有问题,所以在这里向大家请教一下。
biechedan 发表于 2013-9-24 23:54 | 显示全部楼层
不知道的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部