yifeng_xie 在 LIN STACK的lin_timeout_handle周期问题 中说:
Frankie 在 LIN STACK的lin_timeout_handle周期问题 中说:
关于bus active的定义:
image.png。修改的方法就是你 #15 楼发的帖子这么改
曾工,还有一个bug,在l_lfx_tx 和 l_lfx_rx中设置state->frameStatus.busActive=l_true;的时机也有问题。当前,l_lfx_tx 和 l_lfx_rx中驱动返回错误,是不会调用state->frameStatus.busActive = l_true;的。
当进入if(linState->currentEventId==LIN_PID_OK)后,应该就设置state->frameStatus.busActive = l_true;了。此时,一次完整且有效的报文开始事件已经产生,则busActive=true。驱动调度出错也不能设置busActive = false。
所以,代码应该改成下图这样,l_lfx_tx 和 l_lfx_rx中没必要设置state->frameStatus.busActive = l_true;了,只需要记录故障。
f8774823-898e-42d0-a20a-ca115e1ac792-image.png
补充,l_lfx_tx 和 l_lfx_rx中设置state->frameStatus.busActive = l_true还是需要的,我图上是解决从机问题,主机调度表还是需要走l_lfx_tx 和 l_lfx_rx中的state->frameStatus.busActive = l_true。