因为TMS320F2805X系列没有LIN外设,所以需要用SCI来模拟。
问题出在间隔场的检测上;SCI外设自带BRK DETECT的功能,但是datasheet里面讲的不详细,只提到能将10 bit的连续显性位识别为break信号。
我在测试中发现,SCI外设确实可以识别连续10 bit显性位,并置位BRK DETECT标志,但是,对于超过10 bit的显性位,同时也置位FE(帧错误)标志!
从定义来看,应该是没有检测到停止位而置位FE;但是,这种逻辑对于超过10 bit的间隔场无能为力,因为过早触发中断,导致后续的byte也分不清楚啦!
是不是什么地方设置错了?有没有高手解释一下,谢谢!