AnsweredAssumed Answered

基于S32K144和RTM1.0.0固件库的多路CAN总线发送问题

Question asked by Jason zhao on Mar 31, 2018

 

基于S32K144和RTM1.0.0固件库的多路CAN总线发送问题
我们最近在使用多路CAN总线发送时遇到一些问题,具体现象如下:
        1、使用CAN1、CAN2两路向外发送数据时,此时数据发送正常,但是当断开任意一路与外部CAN盒的连接,另外一路也会受到影响,停止发送。
        2、使用CAN0和CAN1或者CAN0和CAN2两路向外发送数据时,断开任意一路与外部CAN盒的连接,另外一路则不会受到影响。
        3、配置CAN0、CAN1、CAN2三路向外发送数据,连接任意两路与外部CAN盒的连接,数据发送正常,但是当断开任意一路,另外一路也会受到影响,停止发送。
   当问题出现时,都是因为state->mbs[mb_idx].state == FLEXCAN_MB_TX_BUSY(The MB is used for a transmission.),而不是FLEXCAN_MB_IDLE(The MB is not used by any transfer),
附代码如下:
   result = FLEXCAN_DRV_Send(instance, mb_idx, &dataInfo, msg_id, &sendBuff[0]);
   while (FLEXCAN_DRV_GetTransferStatus(instance, mb_idx) == STATUS_BUSY);
 

Outcomes