各位大侠,我在用28335做485通讯时出现接收错误,包括BRKDT,FE,PE等,从其状态寄存器里看到的。具体是这样的,28335只用来做接收,用串口助手每10毫秒给28335发送28个字节的数据,波特率为38400,使用了FIFO中断功能,每收到14个字节的数据进一次中断,开始能进收到数,但是串口发送了一会儿后,接收中断就不能进入,查看28335的接收状态寄存器发现了上面提到的错误。如果把发送频率由10毫秒降低到1秒,就不会出现这样的问题,可是这样对我来讲,没有任何意义。请有这方面经历的大侠给帮帮忙,谢谢!我的初始化配置是这样的:
void InitScib()
{
ScibRegs.SCICCR.all = 0x0007;
ScibRegs.SCICTL1.all = 0x0001;
ScibRegs.SCICTL2.bit.RXBKINTENA =1;
// ScibRegs.SCICTL2.all =0x0002; //enable rx interrupt
ScibRegs.SCIHBAUD =0x0000; // 38400 baud @LSPCLK = 50MHz.
ScibRegs.SCILBAUD =0x00A1;
// Initalize the SCI FIFO
ScibRegs.SCIFFTX.all=0xC040;
ScibRegs.SCIFFRX.all=0x002E;
ScibRegs.SCIFFCT.all=0x4000;
ScibRegs.SCICTL1.all =0x0021; // Relinquish SCI from Reset
ScibRegs.SCIFFRX.bit.RXFIFORESET=1;
}
|