1940054_en-US

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1940054_en-US

1940054_en-US

K312 CAN has no signal output

Hello everyone, I tested the CAN on the S32K312 demo board and found that there was no CAN signal output. The code is the same as the configuration reference example (because the SDK example compilation error, I tried it myself), the main code is as follows:

#define MSG_ID 20u
#define RX_MB_IDX 1U
#define TX_MB_IDX 0U
 
uint8 dummyData[8] = {1,2,3,4,5,6,7};
volatile int exit_code = 0;
/* User includes */
extern void CAN0_ORED_0_31_MB_IRQHandler(void);
/*!
  \brief The main function for the project.
  \details The startup initialization sequence is the following:
 * - startup asm routine
 * - main()
*/
int main(void)
{
    /* Write your code here */
Clock_Ip_Init(&Clock_Ip_aClockConfig[0]);
 
IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn);
IntCtrl_Ip_InstallHandler(FlexCAN0_1_IRQn, CAN0_ORED_0_31_MB_IRQHandler, NULL_PTR);
 
Flexcan_Ip_DataInfoType rx_info = {
.msg_id_type = FLEXCAN_MSG_ID_STD,
.data_length = 8u,
.is_polling = TRUE,
.is_remote = FALSE
};
Flexcan_Ip_MsgBuffType rxData;
FlexCAN_Ip_Init(INST_FLEXCAN_0, &FlexCAN_State0, &FlexCAN_Config0);
FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0);
FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX, &rx_info, MSG_ID);
rx_info.is_polling = FALSE;
FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &rx_info, MSG_ID, (uint8 *)&dummyData);
FlexCAN_Ip_Receive(INST_FLEXCAN_0, RX_MB_IDX, &rxData, TRUE);
while(FlexCAN_Ip_GetTransferStatus(INST_FLEXCAN_0, RX_MB_IDX) != FLEXCAN_STATUS_SUCCESS)
{ FlexCAN_Ip_MainFunctionRead(INST_FLEXCAN_0, RX_MB_IDX); }
FlexCAN_Ip_SetStopMode(INST_FLEXCAN_0);
FlexCAN_Ip_Deinit(INST_FLEXCAN_0);
 
    return exit_code;
}
IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn);
IntCtrl_Ip_InstallHandler(FlexCAN0_1_IRQn, CAN0_ORED_0_31_MB_IRQHandler, NULL_PTR);
 
Flexcan_Ip_DataInfoType rx_info = {
.msg_id_type = FLEXCAN_MSG_ID_STD,
.data_length = 8u,
.is_polling = TRUE,
.is_remote = FALSE
};
Flexcan_Ip_MsgBuffType rxData;
FlexCAN_Ip_Init(INST_FLEXCAN_0, &FlexCAN_State0, &FlexCAN_Config0);
FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0);
FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX, &rx_info, MSG_ID);
rx_info.is_polling = FALSE;
FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &rx_info, MSG_ID, (uint8 *)&dummyData);
FlexCAN_Ip_Receive(INST_FLEXCAN_0, RX_MB_IDX, &rxData, TRUE);
while(FlexCAN_Ip_GetTransferStatus(INST_FLEXCAN_0, RX_MB_IDX) != FLEXCAN_STATUS_SUCCESS)
{ FlexCAN_Ip_MainFunctionRead(INST_FLEXCAN_0, RX_MB_IDX); }
FlexCAN_Ip_SetStopMode(INST_FLEXCAN_0);
FlexCAN_Ip_Deinit(INST_FLEXCAN_0);
 
The pin configuration is haha_123456_0-1724656155962.png

can be configured as

haha_123456_1-1724656217136.png

Excuse me, why there is no signal output?

回复: K312 的can 没有信号输出

@PetrS   thank you very much! I can sent data successful!

Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 02:12 AM
Updated by: