[KungFu8位 MCU] KF8A100ENG LIN通信如何实现波特率自动检测?

[复制链接]
2232|5
手机看帖
扫描二维码
随时随地手机跟帖
lingjun1982|  楼主 | 2021-11-5 12:04 | 显示全部楼层 |阅读模式
我在使用KF8A100ENG进行开发,在LIN通信的波特率自动检测中遇到一个问题,望指教!

如何判断LIN总线上的通信速率跟MCU配置的速率不匹配呢?
当RCIF为1时,进入接收中断后,判断FRER为1说明有帧错误,且RXSDR读出的数据不为0时,
可否认为是通信速率不匹配呢?代码如下:

Lin_buf = RXSDR;  // 清零 RXIF
if((FRER)&&(Lin_buf == 0))//检测到帧错误-没有在规定的时间内检测到停止位,且接收到的数据全是0。
{
        flag = 0;//就判断为13位低电平,为Lin间隔符
}
else if((FRER)&&(Lin_buf != 0)) //检测到帧错误-且接收到的数据不是0
{
        ABRDEN = 1;//进行自动波特率检测
        flag = 0;
}

使用特权

评论回复
lingjun1982|  楼主 | 2021-11-5 13:06 | 显示全部楼层
或者有没有KungFu官方的Demo code?

使用特权

评论回复
chenqianqian| | 2021-11-6 15:33 | 显示全部楼层
这个还没有好好研究过

使用特权

评论回复
huquanz711| | 2021-11-7 18:49 | 显示全部楼层
可以借鉴一下串口波特率自适应算法

使用特权

评论回复
guijial511| | 2021-11-9 08:20 | 显示全部楼层
没有研究过,楼主可以参考串口的波特率自适应做法。

使用特权

评论回复
sparrow054| | 2021-11-9 14:59 | 显示全部楼层
这个还能自动检测么?

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则