DSP 串口报错frame error,怎么处理

这3天接了一个维护的活儿,发现对方的串口转光部分,上下电会引起DSP里的串口接收数据报错:
SCIRXBUF_BITS结构

Uint16 SCIFFPE:1;                   // 14 Receiver error flag 
Uint16 SCIFFFE:1;                   // 15 Receiver error flag 

就是这俩货报错。
于是网上慢慢求索:
方法有三:
1、重启串口接收部分。
2、重启串口外围设备。
3、重启DSP,杀看门狗。

按照需求,只是串口异常,只需要针对串口做处理即可。
反反复复的在网上看,以及看芯片手册,都不是很得法,最后找到解决办法如下:

if (SciaRegs.SCIRXST.bit.BRKDT == 1  || SciaRegs.SCIRXST.bit.RXERROR == 1)
   {
   	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
   	SciaRegs.SCICTL2.all =0x0000;

   	SciaRegs.SCICTL1.all =0x0023;      // Relinquish SCI from Reset

   	SciaRegs.SCICTL2.bit.TXINTENA =1;		// 发送中断
   	SciaRegs.SCICTL2.bit.RXBKINTENA =1;	// 接收中断

   	asm(" RPT#10 || NOP");

   }  

放到main循环做检验,发现错误就重置一下即可。

希望3天的时间解决的问题能帮到遇到同样问题的小朋友。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

big pineapple

谢谢你的小助力,时间就是金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值