NXP MCU 技术william hill官网
直播中

李超

7年用户 1325经验值
私信 关注
[问答]

在S32K144中接收CAN报文失败是什么原因?怎么解决?

我们正在构建一个应用程序,用于使用 S32K144 处理器的 CAN 接口。但无法跟踪从 CAN 分析仪接收到的 RX 数据。这是代码参考。

flexcan_data_info_t rx_info =
  {
    .data_length = 8U,
    .msg_id_type = FLEXCAN_MSG_ID_EXT,
    .enable_brs = 真,
    .fd_enable = 真,
    .fd_padding = 0U
  };

flexcan_msgbuff_t rx_data;
uint32_t MSG_ID = 7E8;

int 主要(无效)
{
CLOCK_DRV_Init(&clockMan1_InitConfig0);
LPTMR_DRV_Init(INST_LPTMR1, &lpTmr1_config0,1);
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS,g_pin_mux_InitConfigArr);
INT_SYS_EnableIRQ(CAN0_ORed_0_15_MB_IRQn);
INT_SYS_InstallHandler(CAN0_ORed_0_15_MB_IRQn,CAN0_ORed_0_15_MB_IRQHandler,NULL);
FLEXCAN_DRV_Init(INST_CANCOM1, &canCom1_State, &canCom1_InitConfig0);
FLEXCAN_DRV_SetRxMaskType(INST_CANCOM1,FLEXCAN_RX_MASK_GLOBAL);
FLEXCAN_DRV_SetRxMbGlobalMask(INST_CANCOM1,FLEXCAN_MSG_ID_STD,0U);
flexcan_data_info_t dataInfo =
{
.data_length = 8U,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.enable_brs = true,
.fd_enable = true,
.fd_padding = 0U
};
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1,0U,&rx_info,MSG_ID);
FLEXCAN_IRQHandler(INST_CANCOM1);
FLEXCAN_DRV_Receive(INST_CANCOM1,0U,&rx_data);
而(FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1,0U)== STATUS_BUSY);
FLEXCAN_DRV_Send(INST_CANCOM1,0U,&dataInfo,MSG_ID,&rx_data);
}

更多回帖

发帖
×
20
完善资料,
赚取积分