<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic CAN FLEXCAN_EVENT_RX_COMPLETE interrupt issue in S32 SDK</title>
    <link>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825680#M625</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I'm working with S32K148EVB and using CAN_PAL example code from SDK.it is working fine but i want to receive CAN massage on interrupt. So i use&amp;nbsp;&lt;STRONG&gt;CAN_InstallEventCallback&amp;nbsp;&lt;/STRONG&gt;API&amp;nbsp;to inable RX interrupt. But it generate&amp;nbsp;interrupt after receive or transmite conplete. Please suggest any&amp;nbsp;methode or any example code to get interrupt&amp;nbsp;for any can massage on CAN bus.&amp;nbsp;I have attached my code below:-&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ifdef EVB&lt;BR /&gt;/*&lt;BR /&gt; * @brief Function to initialize and configure the SBC&lt;BR /&gt; */&lt;BR /&gt;void SBCInit(void)&lt;BR /&gt;{&lt;BR /&gt; LPSPI_DRV_MasterInit(LPSPICOM1, &amp;amp;lpspiCom1State, &amp;amp;lpspiCom1_MasterConfig0);&lt;BR /&gt;#ifdef EVB_REV_A&lt;BR /&gt; LPSPI1-&amp;gt;CFGR1 |= LPSPI_CFGR1_PINCFG(3U);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;uja113x_drv_cfg_t sbc_uja113x1_DrvConfig0 = {&lt;BR /&gt; .chipType = UJA1132HW5V0,&lt;BR /&gt; .lpspiInstance = LPSPICOM1,&lt;BR /&gt; .timeout = 200U&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;/* Initialize SBC */&lt;BR /&gt; UJA113X_Init(0U, &amp;amp;sbc_uja113x1_InitConfig0, &amp;amp;sbc_uja113x1_DrvConfig0);&lt;BR /&gt;}&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt; /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/&lt;BR /&gt; #ifdef PEX_RTOS_INIT&lt;BR /&gt; PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt; #endif&lt;BR /&gt; /*** End of Processor Expert internal initialization. ***/&lt;/P&gt;&lt;P&gt;/* Do the initializations required for this application */&lt;BR /&gt; BoardInit();&lt;BR /&gt;#ifdef EVB&lt;BR /&gt; SBCInit();&lt;BR /&gt;#endif&lt;BR /&gt; GPIOInit();&lt;/P&gt;&lt;P&gt;CAN_Init(INST_CAN_PAL1, &amp;amp;can_pal1_Config0);&lt;/P&gt;&lt;P&gt;/* Set information about the data to be sent&lt;BR /&gt; * - Standard message ID&lt;BR /&gt; * - Bit rate switch enabled to use a different bitrate for the data segment&lt;BR /&gt; * - Flexible data rate enabled&lt;BR /&gt; * - Use zeros for FD padding&lt;BR /&gt; */&lt;BR /&gt; can_buff_config_t buffCfg = {&lt;BR /&gt; .enableFD = true,&lt;BR /&gt; .enableBRS = true,&lt;BR /&gt; .fdPadding = 0U,&lt;BR /&gt; .idType = CAN_MSG_ID_STD,&lt;BR /&gt; .isRemote = false&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;/* Configure RX buffer with index RX_MAILBOX */&lt;BR /&gt; CAN_ConfigRxBuff(INST_CAN_PAL1, RX_MAILBOX, &amp;amp;buffCfg, RX_MSG_ID);&lt;/P&gt;&lt;P&gt;CAN_InstallEventCallback(INST_CAN_PAL1, flexcan0_Callback, NULL);&lt;/P&gt;&lt;P&gt;while(1)&lt;BR /&gt; {&lt;BR /&gt;// /* Define receive buffer */&lt;BR /&gt;// can_message_t recvMsg;&lt;BR /&gt;//&lt;BR /&gt;// /* Start receiving data in RX_MAILBOX. */&lt;BR /&gt;// CAN_Receive(INST_CAN_PAL1, RX_MAILBOX, &amp;amp;recvMsg);&lt;BR /&gt;//&lt;BR /&gt;// /* Wait until the previous FlexCAN receive is completed */&lt;BR /&gt;// while(CAN_GetTransferStatus(INST_CAN_PAL1, RX_MAILBOX) == STATUS_BUSY);&lt;BR /&gt;//&lt;BR /&gt;// /* Check the received message ID and payload */&lt;BR /&gt;// if((recvMsg.data[0] == LED0_CHANGE_REQUESTED) &amp;amp;&amp;amp;&lt;BR /&gt;// recvMsg.id == RX_MSG_ID)&lt;BR /&gt;// {&lt;BR /&gt;// /* Toggle output value LED1 */&lt;BR /&gt;// PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED0));&lt;BR /&gt;// }&lt;BR /&gt;// else if((recvMsg.data[0] == LED1_CHANGE_REQUESTED) &amp;amp;&amp;amp;&lt;BR /&gt;// recvMsg.id == RX_MSG_ID)&lt;BR /&gt;// {&lt;BR /&gt;// /* Toggle output value LED0 */&lt;BR /&gt;// PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED1));&lt;BR /&gt;// }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;/*** Don't write any code pass this line, or it will be deleted during code generation. ***/&lt;BR /&gt; /*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/&lt;BR /&gt; #ifdef PEX_RTOS_START&lt;BR /&gt; PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt; #endif&lt;BR /&gt; /*** End of RTOS startup code. ***/&lt;BR /&gt; /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/&lt;BR /&gt; for(;;) {&lt;BR /&gt; if(exit_code != 0) {&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; return exit_code;&lt;BR /&gt; /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/&lt;BR /&gt;} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/&lt;/P&gt;&lt;P&gt;/* END main */&lt;BR /&gt;/*!&lt;BR /&gt;** @}&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;static void flexcan0_Callback(uint8_t instance,&lt;BR /&gt; flexcan_event_type_t eventType,&lt;BR /&gt; flexcan_state_t *flexcanState)&lt;BR /&gt;{&lt;BR /&gt; (void)flexcanState;&lt;BR /&gt; (void)instance;&lt;/P&gt;&lt;P&gt;switch(eventType)&lt;BR /&gt; {&lt;BR /&gt; case FLEXCAN_EVENT_RX_COMPLETE:&lt;BR /&gt; PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED1));&lt;BR /&gt; break;&lt;BR /&gt; case FLEXCAN_EVENT_TX_COMPLETE:&lt;BR /&gt;// PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED0));&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 Jul 2018 12:14:54 GMT</pubDate>
    <dc:creator>rinkuyadav</dc:creator>
    <dc:date>2018-07-18T12:14:54Z</dc:date>
    <item>
      <title>CAN FLEXCAN_EVENT_RX_COMPLETE interrupt issue</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825680#M625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I'm working with S32K148EVB and using CAN_PAL example code from SDK.it is working fine but i want to receive CAN massage on interrupt. So i use&amp;nbsp;&lt;STRONG&gt;CAN_InstallEventCallback&amp;nbsp;&lt;/STRONG&gt;API&amp;nbsp;to inable RX interrupt. But it generate&amp;nbsp;interrupt after receive or transmite conplete. Please suggest any&amp;nbsp;methode or any example code to get interrupt&amp;nbsp;for any can massage on CAN bus.&amp;nbsp;I have attached my code below:-&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ifdef EVB&lt;BR /&gt;/*&lt;BR /&gt; * @brief Function to initialize and configure the SBC&lt;BR /&gt; */&lt;BR /&gt;void SBCInit(void)&lt;BR /&gt;{&lt;BR /&gt; LPSPI_DRV_MasterInit(LPSPICOM1, &amp;amp;lpspiCom1State, &amp;amp;lpspiCom1_MasterConfig0);&lt;BR /&gt;#ifdef EVB_REV_A&lt;BR /&gt; LPSPI1-&amp;gt;CFGR1 |= LPSPI_CFGR1_PINCFG(3U);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;uja113x_drv_cfg_t sbc_uja113x1_DrvConfig0 = {&lt;BR /&gt; .chipType = UJA1132HW5V0,&lt;BR /&gt; .lpspiInstance = LPSPICOM1,&lt;BR /&gt; .timeout = 200U&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;/* Initialize SBC */&lt;BR /&gt; UJA113X_Init(0U, &amp;amp;sbc_uja113x1_InitConfig0, &amp;amp;sbc_uja113x1_DrvConfig0);&lt;BR /&gt;}&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt; /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/&lt;BR /&gt; #ifdef PEX_RTOS_INIT&lt;BR /&gt; PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt; #endif&lt;BR /&gt; /*** End of Processor Expert internal initialization. ***/&lt;/P&gt;&lt;P&gt;/* Do the initializations required for this application */&lt;BR /&gt; BoardInit();&lt;BR /&gt;#ifdef EVB&lt;BR /&gt; SBCInit();&lt;BR /&gt;#endif&lt;BR /&gt; GPIOInit();&lt;/P&gt;&lt;P&gt;CAN_Init(INST_CAN_PAL1, &amp;amp;can_pal1_Config0);&lt;/P&gt;&lt;P&gt;/* Set information about the data to be sent&lt;BR /&gt; * - Standard message ID&lt;BR /&gt; * - Bit rate switch enabled to use a different bitrate for the data segment&lt;BR /&gt; * - Flexible data rate enabled&lt;BR /&gt; * - Use zeros for FD padding&lt;BR /&gt; */&lt;BR /&gt; can_buff_config_t buffCfg = {&lt;BR /&gt; .enableFD = true,&lt;BR /&gt; .enableBRS = true,&lt;BR /&gt; .fdPadding = 0U,&lt;BR /&gt; .idType = CAN_MSG_ID_STD,&lt;BR /&gt; .isRemote = false&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;/* Configure RX buffer with index RX_MAILBOX */&lt;BR /&gt; CAN_ConfigRxBuff(INST_CAN_PAL1, RX_MAILBOX, &amp;amp;buffCfg, RX_MSG_ID);&lt;/P&gt;&lt;P&gt;CAN_InstallEventCallback(INST_CAN_PAL1, flexcan0_Callback, NULL);&lt;/P&gt;&lt;P&gt;while(1)&lt;BR /&gt; {&lt;BR /&gt;// /* Define receive buffer */&lt;BR /&gt;// can_message_t recvMsg;&lt;BR /&gt;//&lt;BR /&gt;// /* Start receiving data in RX_MAILBOX. */&lt;BR /&gt;// CAN_Receive(INST_CAN_PAL1, RX_MAILBOX, &amp;amp;recvMsg);&lt;BR /&gt;//&lt;BR /&gt;// /* Wait until the previous FlexCAN receive is completed */&lt;BR /&gt;// while(CAN_GetTransferStatus(INST_CAN_PAL1, RX_MAILBOX) == STATUS_BUSY);&lt;BR /&gt;//&lt;BR /&gt;// /* Check the received message ID and payload */&lt;BR /&gt;// if((recvMsg.data[0] == LED0_CHANGE_REQUESTED) &amp;amp;&amp;amp;&lt;BR /&gt;// recvMsg.id == RX_MSG_ID)&lt;BR /&gt;// {&lt;BR /&gt;// /* Toggle output value LED1 */&lt;BR /&gt;// PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED0));&lt;BR /&gt;// }&lt;BR /&gt;// else if((recvMsg.data[0] == LED1_CHANGE_REQUESTED) &amp;amp;&amp;amp;&lt;BR /&gt;// recvMsg.id == RX_MSG_ID)&lt;BR /&gt;// {&lt;BR /&gt;// /* Toggle output value LED0 */&lt;BR /&gt;// PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED1));&lt;BR /&gt;// }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;/*** Don't write any code pass this line, or it will be deleted during code generation. ***/&lt;BR /&gt; /*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/&lt;BR /&gt; #ifdef PEX_RTOS_START&lt;BR /&gt; PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt; #endif&lt;BR /&gt; /*** End of RTOS startup code. ***/&lt;BR /&gt; /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/&lt;BR /&gt; for(;;) {&lt;BR /&gt; if(exit_code != 0) {&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; return exit_code;&lt;BR /&gt; /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/&lt;BR /&gt;} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/&lt;/P&gt;&lt;P&gt;/* END main */&lt;BR /&gt;/*!&lt;BR /&gt;** @}&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;static void flexcan0_Callback(uint8_t instance,&lt;BR /&gt; flexcan_event_type_t eventType,&lt;BR /&gt; flexcan_state_t *flexcanState)&lt;BR /&gt;{&lt;BR /&gt; (void)flexcanState;&lt;BR /&gt; (void)instance;&lt;/P&gt;&lt;P&gt;switch(eventType)&lt;BR /&gt; {&lt;BR /&gt; case FLEXCAN_EVENT_RX_COMPLETE:&lt;BR /&gt; PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED1));&lt;BR /&gt; break;&lt;BR /&gt; case FLEXCAN_EVENT_TX_COMPLETE:&lt;BR /&gt;// PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED0));&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2018 12:14:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825680#M625</guid>
      <dc:creator>rinkuyadav</dc:creator>
      <dc:date>2018-07-18T12:14:54Z</dc:date>
    </item>
    <item>
      <title>Re: CAN FLEXCAN_EVENT_RX_COMPLETE interrupt issue</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825681#M626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, to receive any message ID and type you need to set CAN on RX FIFO mode, and to set the acceptance filter corresponding to 0.&amp;nbsp;&lt;/P&gt;&lt;P&gt;config structures:&lt;/P&gt;&lt;P&gt;/*! @brief PAL instance information */&lt;BR /&gt;const can_instance_t can_pal1_instance = {CAN_INST_TYPE_FLEXCAN, 0U};&lt;/P&gt;&lt;P&gt;/*! @brief Rx FIFO extension */&lt;BR /&gt;extension_flexcan_rx_fifo_t can_pal1_rx_fifo_ext0 = {&lt;BR /&gt; .numIdFilters = FLEXCAN_RX_FIFO_ID_FILTERS_8,&lt;BR /&gt; .idFormat = FLEXCAN_RX_FIFO_ID_FORMAT_A,&lt;BR /&gt;/* User must pass reference to the ID filter table. */&lt;BR /&gt; .idFilterTable = NULL&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;/*! @brief User configuration structure */&lt;BR /&gt;const can_user_config_t can_pal1_Config0 = {&lt;BR /&gt; .maxBuffNum = 16UL,&lt;BR /&gt; .mode = CAN_NORMAL_MODE,&lt;BR /&gt; .peClkSrc = CAN_CLK_SOURCE_OSC,&lt;BR /&gt; .enableFD = false,&lt;BR /&gt; .payloadSize = CAN_PAYLOAD_SIZE_8,&lt;BR /&gt; .nominalBitrate = {&lt;BR /&gt; .propSeg = 7,&lt;BR /&gt; .phaseSeg1 = 4,&lt;BR /&gt; .phaseSeg2 = 1,&lt;BR /&gt; .preDivider = 0,&lt;BR /&gt; .rJumpwidth = 1&lt;BR /&gt; },&lt;BR /&gt; .dataBitrate = {&lt;BR /&gt; .propSeg = 7,&lt;BR /&gt; .phaseSeg1 = 4,&lt;BR /&gt; .phaseSeg2 = 1,&lt;BR /&gt; .preDivider = 0,&lt;BR /&gt; .rJumpwidth = 1&lt;BR /&gt; },&lt;BR /&gt; .extension = &amp;amp;can_pal1_rx_fifo_ext0&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;status_t status;&lt;BR /&gt; flexcan_id_table_t flTable[10];&lt;BR /&gt; /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/&lt;BR /&gt; #ifdef PEX_RTOS_INIT&lt;BR /&gt; PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt; #endif&lt;BR /&gt; /*** End of Processor Expert internal initialization. ***/&lt;BR /&gt; uint8_t i;&lt;BR /&gt; for(i=0;i&amp;lt;10;i++)&lt;BR /&gt; {&lt;BR /&gt; flTable[i].id=i;&lt;BR /&gt; flTable[i].isExtendedFrame=true;&lt;BR /&gt; flTable[i].isRemoteFrame=false;&lt;BR /&gt; }&lt;BR /&gt; /* Do the initializations required for this application */&lt;BR /&gt; BoardInit();&lt;BR /&gt; GPIOInit();&lt;BR /&gt; can_pal1_rx_fifo_ext0.idFilterTable = &amp;amp;flTable;&lt;/P&gt;&lt;P&gt;status = CAN_Init(&amp;amp;can_pal1_instance, &amp;amp;can_pal1_Config0);&lt;BR /&gt; DEV_ASSERT(status == STATUS_SUCCESS);&lt;BR /&gt; CAN_SetRxFilter(&amp;amp;can_pal1_instance,CAN_MSG_ID_EXT,1, 0);&lt;BR /&gt; while(1)&lt;BR /&gt; {&lt;BR /&gt; /* Define receive buffer */&lt;BR /&gt; can_message_t recvMsg;&lt;/P&gt;&lt;P&gt;/* Start receiving data in RX_MAILBOX. */&lt;BR /&gt; CAN_Receive(&amp;amp;can_pal1_instance, 0U, &amp;amp;recvMsg);&lt;/P&gt;&lt;P&gt;/* Wait until the previous FlexCAN receive is completed */&lt;BR /&gt; while(CAN_GetTransferStatus(&amp;amp;can_pal1_instance, 0U) == STATUS_BUSY);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Aug 2018 07:43:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825681#M626</guid>
      <dc:creator>alexandrunan</dc:creator>
      <dc:date>2018-08-01T07:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: CAN FLEXCAN_EVENT_RX_COMPLETE interrupt issue</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825682#M627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was struggling with the same problem, but solved it for me - without the Rx FIFO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Examinating the FLEXCAN driver files and the CAN PAL files I found that it is sufficient to invoke the non-blocking receive function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the mentioned example above it would be&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="token function"&gt;CAN_Receive&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;INST_CAN_PAL1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; RX_MAILBOX&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;recvMsg&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where &lt;STRONG&gt;recvMsg&lt;/STRONG&gt; should be declared as a global variable if you want to use it in the callback function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;CAN_Receive&lt;/EM&gt;&lt;/STRONG&gt; will call&amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;FLEXCAN_StartRxMessageBufferData&lt;/EM&gt;&lt;/STRONG&gt; where the corresponding interrupt mask flag in &lt;STRONG&gt;IMASK1&lt;/STRONG&gt; of the CAN instance is set by &lt;STRONG&gt;&lt;EM&gt;FLEXCAN_SetMsgBuffIntCmd&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When a message is received in mailbox &lt;STRONG&gt;RX_MAILBOX&lt;/STRONG&gt;, the installed callback function will be invoked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Before the callback function is called, the mailbox interrupt flag is cleared by &lt;STRONG&gt;&lt;EM&gt;FLEXCAN_CompleteTransfer&lt;/EM&gt;&lt;/STRONG&gt;. To receive further messages you have to call &lt;STRONG&gt;&lt;EM&gt;CAN_Receive&lt;/EM&gt;&lt;/STRONG&gt; again. It works for me to do this in the callback function directly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best wishes,&lt;/P&gt;&lt;P&gt;Dennis&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Aug 2018 09:46:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/825682#M627</guid>
      <dc:creator>dennis_hage</dc:creator>
      <dc:date>2018-08-23T09:46:07Z</dc:date>
    </item>
    <item>
      <title>Re: CAN FLEXCAN_EVENT_RX_COMPLETE interrupt issue</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/1274789#M2169</link>
      <description>&lt;P&gt;hello,&lt;/P&gt;&lt;P&gt;I have a&amp;nbsp;S32K148EVB board.&lt;SPAN&gt;I need a full routine program to use CAN0 and UJA1132, configuring board by myself&amp;nbsp; don't work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;thank you&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 May 2021 05:40:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/1274789#M2169</guid>
      <dc:creator>blavk</dc:creator>
      <dc:date>2021-05-11T05:40:14Z</dc:date>
    </item>
    <item>
      <title>Re: CAN FLEXCAN_EVENT_RX_COMPLETE interrupt issue</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/1351004#M2293</link>
      <description>&lt;P&gt;Hello Team,&lt;BR /&gt;i installed the callback but i am not coming inside this,&lt;BR /&gt;&lt;BR /&gt;Can anyone help me out here,&lt;BR /&gt;it will really helpful because i am very new in these things,&lt;BR /&gt;My code :&lt;/P&gt;&lt;P&gt;void InitCAN(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;CAN_Init(&amp;amp;can_pal1_instance, &amp;amp;can_pal1_Config0);&lt;/P&gt;&lt;P&gt;/* Set information about the data&lt;BR /&gt;* - Standard message ID&lt;BR /&gt;* - Bit rate switch enabled to use a different bitrate for the data segment&lt;BR /&gt;* - Flexible data rate enabled&lt;BR /&gt;* - Use zeros for FD padding&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;can_buff_config_t RxbuffCfg = {&lt;BR /&gt;.enableFD = false,&lt;BR /&gt;.enableBRS = false,&lt;BR /&gt;.fdPadding = 0U,&lt;BR /&gt;.idType = CAN_MSG_ID_STD,&lt;BR /&gt;.isRemote = false&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;/* Configure RX buffer with index RX_MAILBOX */&lt;BR /&gt;CAN_ConfigRxBuff(&amp;amp;can_pal1_instance, RX_MAILBOX, &amp;amp;RxbuffCfg, RX_MSG_ID);&lt;BR /&gt;CAN_InstallEventCallback(&amp;amp;can_pal1_instance, flexcan0_Callback, NULL);&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;void CAN_main(void )&lt;BR /&gt;{&lt;BR /&gt;while(1)&lt;BR /&gt;{&lt;BR /&gt;CAN_Send_DATA();&lt;BR /&gt;/* Start receiving data in RX_MAILBOX. */&lt;BR /&gt;CAN_Receive(&amp;amp;can_pal1_instance, RX_MAILBOX, &amp;amp;recvMsg);&lt;BR /&gt;/* Wait until the previous FlexCAN receive is completed */&lt;BR /&gt;while(CAN_GetTransferStatus(&amp;amp;can_pal1_instance, RX_MAILBOX) == STATUS_BUSY);&lt;/P&gt;&lt;P&gt;UpdateRecivedDataIntoBuffer();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks in Advance,&lt;BR /&gt;Rohit&lt;/P&gt;</description>
      <pubDate>Wed, 06 Oct 2021 09:00:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-FLEXCAN-EVENT-RX-COMPLETE-interrupt-issue/m-p/1351004#M2293</guid>
      <dc:creator>rohit_alate</dc:creator>
      <dc:date>2021-10-06T09:00:28Z</dc:date>
    </item>
  </channel>
</rss>

