跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. 测试LIN通讯,偶发出现报文发送中断的情况,代码是Demo例程集成的

测试LIN通讯,偶发出现报文发送中断的情况,代码是Demo例程集成的

已定时 已固定 已锁定 已移动 YTM32B1M系列
1 帖子 1 发布者 78 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • YanglzY 离线
    YanglzY 离线
    Yanglz
    写于 最后由 编辑
    #1

    微信图片_20250414155155.jpg static void Lin_CallbackHandler(uint32_t instance, lin_state_t *lin_State)
    {
    (void)instance;

    switch (lin_State->currentEventId)
    {
        case LIN_PID_OK:
            /* Set frame header timeout */
            LIN_DRV_SetTimeoutCounter(INST_LIN, TIMEOUT);
            /* If PID is FRAME_MASTER_RECEIVE_DATA, master node will receive data */
            if (FRAME_MASTER_RECEIVE_DATA == lin_State->currentId)
            {
                LIN_DRV_SendFrameData(INST_LIN, txBuff, sizeof(txBuff));
                /* Call to Send Frame DATA Function */
            }
            /* If PID is FRAME_SLAVE_RECEIVE_DATA, salve node will receive data from master node */
            else if (FRAME_SLAVE_RECEIVE_DATA == lin_State->currentId)
            {
                LIN_DRV_ReceiveFrameData(INST_LIN, rxBuff, sizeof(rxBuff));
            }
            else if (FRAME_Dcm_Response_DATA == lin_State->currentId)
    	   {
            	if(txDcmFlag == Dcm_Req||txDcmFlag == Dcm_Busy)
            	{
            		LIN_DRV_SendFrameData(INST_LIN, txDcmBuff, sizeof(txBuff));
            		txDcmFlag = Dcm_Busy;
            	}
            	else
            	{
            	    /* Go to idle mode */
    				LIN_DRV_GotoIdleState(INST_LIN);
            	}
    		   /* Call to Send Frame DATA Function */
    	   }
    	   /* If PID is FRAME_SLAVE_RECEIVE_DATA, salve node will receive data from master node */
    	   else if (FRAME_Dcm_Request_DATA == lin_State->currentId)
    	   {
    		   LIN_DRV_ReceiveFrameData(INST_LIN, rxDcmBuff, sizeof(rxBuff));
    
    		   rxDcmFlag = Dcm_Req;
    	   }
            /* If PID is FRAME_GO_TO_SLEEP, salve node will go to sleep mode */
            else if (FRAME_GO_TO_SLEEP == lin_State->currentId)
            {
                sleepSignalFlag = true;
                LIN_DRV_ReceiveFrameData(INST_LIN, rxBuff, sizeof(rxBuff));
            }
            else
            {
                /* Go to idle mode */
                LIN_DRV_GotoIdleState(INST_LIN);
            }
            break;
        case LIN_PID_ERROR:
    
    /* Go to idle mode */
            LIN_DRV_GotoIdleState(INST_LIN);
            break;
        case LIN_TX_COMPLETED:
    
        	  if (FRAME_Dcm_Response_DATA == lin_State->currentId)
        	  {
        		 if( Dcm_Busy == txDcmFlag)
        		 {
        			txDcmFlag = Dcm_Finished;
        	        ISO15765_TransmitConfirm();
        		 }
        	  }
        	  else
        	  {
        		  txCompFlag = true;
        	  }
            /* Go to idle mode */
            LIN_DRV_GotoIdleState(INST_LIN);
            break;
        case LIN_RX_COMPLETED:
    
    	   if (FRAME_Dcm_Request_DATA == lin_State->currentId)
    	   {
    		   rxDcmFlag = Dcm_Busy;
    	   }
    	   else
    	   {
    		   rxCompFlag = true;
    	   }
    
    
            /* Go to idle mode */
            LIN_DRV_GotoIdleState(INST_LIN);
            break;
        case LIN_CHECKSUM_ERROR:
        case LIN_READBACK_ERROR:
        case LIN_FRAME_ERROR:
        case LIN_RECV_BREAK_FIELD_OK:
            /* Set response timeout */
            LIN_DRV_SetTimeoutCounter(INST_LIN, TIMEOUT);
            break;
        case LIN_WAKEUP_SIGNAL:
            /* Set wakeup signal flag */
            wakeupSignalFlag = true;
            break;
        case LIN_SYNC_ERROR:
        case LIN_BAUDRATE_ADJUSTED:
        case LIN_NO_EVENT:
        case LIN_SYNC_OK:
        default:
            /* do nothing */
            break;
    }
    

    }
    跑了16个小时左右,出现了7次响应服务错误。

    1 条回复 最后回复
    0

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • demo
    19
    can
    18
    uds
    11
    lin stack
    7
    fbl
    5
    yt-link
    5
    md14
    4
    adc模块
    3
    Online Users
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门