tianyaxtutianya 发表于 2014-11-1 21:12:09

DSP将8335的串口受到干扰后无法再次产生串口中断

DSP将8335的串口受到干扰后无法再次产生串口中断,我用SCI进行串口接收数据,如果串口数据不受到干扰,一切正常,也能产生串口中断,但是如果一但串口的数据被干扰之后,就再也进不去串口中断了,就算后面的串口数据恢复正常了,也无法再次进入串口中断函数里面,哪位大侠遇到过,给支支招?   江湖救急啊

steaven2000 发表于 2014-11-2 10:51:51

好好看看sci部分的寄存器,有些error是需要软件清除的。

tianyaxtutianya 发表于 2014-11-6 14:50:53

steaven2000 发表于 2014-11-2 10:51
好好看看sci部分的寄存器,有些error是需要软件清除的。

SCI如果产生接收错误中断,并且这个中断不清除的话,是否会导致无法正常串口接收中断

tkggsai2008 发表于 2014-11-6 17:58:54

是不是用了fifo中断,必须要接受一定的字节才产生中断???

tianyaxtutianya 发表于 2014-11-10 17:06:04

tkggsai2008 发表于 2014-11-6 17:58
是不是用了fifo中断,必须要接受一定的字节才产生中断???

是用的FIFO中断,我是设定为1个字节就产生中断

laoerge 发表于 2014-11-10 23:26:21

二楼正解,一定要检测寄存器里的错误位,发生错误后记得清除。我前不久正好碰到这个问题,施加干扰后只发不收了,清除错误标志后问题解决。

tianyaxtutianya 发表于 2014-11-15 17:13:10

laoerge 发表于 2014-11-10 23:26
二楼正解,一定要检测寄存器里的错误位,发生错误后记得清除。我前不久正好碰到这个问题,施加干扰后只发不 ...

楼上的错误标志位的清除,是利用产生了错误中断来清除的嘛?

给个参考代码学习下吧

laoerge 发表于 2014-11-15 18:48:37

tianyaxtutianya 发表于 2014-11-15 17:13
楼上的错误标志位的清除,是利用产生了错误中断来清除的嘛?

给个参考代码学习下吧 ...

/*=======================================================================
* 函数:scia_rx_isr
* 功能:scia接收中断处理(HMI485接口,接显示屏)
* 参数:无
* 返回:无
*======================================================================*/
interrupt void scia_rx_isr(void)
{
        if(SciaRegs.SCIRXST.bit.RXERROR)                                                // 发生接收错误后,软件复位串口,并重新时能串口
        {
                SciaRegs.SCICTL1.bit.SWRESET = 0;
                SciaRegs.SCICTL1.bit.SWRESET = 1;
        }
}

原来没加这个错误处理就会发生干扰后只发不收现象,加了好像是解决了。

laoerge 发表于 2014-11-15 18:54:52

楼主如果这样解决了麻烦告知一声,我也是才用DSP不久

tianyaxtutianya 发表于 2014-11-24 18:04:52

laoerge 发表于 2014-11-15 18:48
/*=======================================================================
* 函数:scia_rx_isr
* 功 ...

如何配置这个错误中断初始化部分

laoerge 发表于 2014-11-24 18:47:07

tianyaxtutianya 发表于 2014-11-24 18:04
如何配置这个错误中断初始化部分

这个不是错误中断,就是接收中断。在接收中断里做错误处理即可

laoerge 发表于 2014-11-24 18:48:23

我这个中断里边接收处理被我删掉了,你加上你自己的功能就行

tianyaxtutianya 发表于 2014-11-25 10:56:54

laoerge 发表于 2014-11-24 18:48
我这个中断里边接收处理被我删掉了,你加上你自己的功能就行

产生接收错误后,不需要配置什么也可以正常产生接收错误中断嘛?

laoerge 发表于 2014-11-25 17:54:13

配置成能产生接收中断就可以了,然后在接收中断里处理错误,我这样处理后就没发生问题了。一开始我也再找错误中断,但好像没有。
页: [1]
查看完整版本: DSP将8335的串口受到干扰后无法再次产生串口中断