打印

28335做485通讯出现RXERROR,BRKDT,FE,PE错误

[复制链接]
4061|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zj1|  楼主 | 2014-6-26 19:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,我在用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;
}

相关帖子

沙发
wangch_sh| | 2014-6-26 19:41 | 只看该作者
降低下波特率行不行?

使用特权

评论回复
板凳
zhangmangui| | 2014-6-27 12:39 | 只看该作者
波特率确实很高 降一下看看  
排除别的问题

使用特权

评论回复
地板
xx1555| | 2014-7-21 17:15 | 只看该作者
楼主,你是怎么解决的啊?我也遇到这样的问题了。
我是F2812做485通讯。波特率9600,接收和发送功能都具有。
电脑发送89个字节,DSP要回答8个字节。当每隔100ms发送一次时,出现了楼主你那样的情况,再也不能进接收中断了。当我改为每隔200ms发送一次,就没有问题了,接收和发送就都正常了。
楼主,你是怎么解决的啊?

使用特权

评论回复
5
sunmenglin| | 2016-3-4 23:41 | 只看该作者
楼主,你是怎么解决的啊?

使用特权

评论回复
6
zj1|  楼主 | 2016-3-10 18:06 | 只看该作者
在我上面贴出来的配置里增加上这么一句,ScibRegs.SCIPRI.bit.FREE = 1;我是在CCS3.3条件下进行程序调试的,为了看到收到的数,你不免要刷新窗口,在刷新的时候会影响到DSP与串口之间的通讯,所以需要增加这一句。另外最重要的是,在仿真时让DSP进入realtime模式,具体是这么操作的,在运行程序之前,单击Debug菜单下面的Real-time Mode项,之后再运行程序。上面就是我解决这个问题的经过,希望能对你有所帮助。

使用特权

评论回复
7
JY-DX-JY| | 2016-3-10 18:36 | 只看该作者
多谢分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

zj1
个人签名:小李飞刀,例不虚发

5

主题

143

帖子

2

粉丝