<?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 Receive using SDK Functions in S32 SDK</title>
    <link>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812828#M565</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;/P&gt;&lt;P&gt;I am trying to use the SDK function FLEXCAN_DRV_Receive in my program by mimicking what is done in flexcan_encrypted_s32k144 (which runs correctly). I copied and pasted the code into my own program but it doesn't seem to work. The program correctly waits for the message to be sent, but then triggers the DefaultISR when the message is sent. FLEXCAN_DRV_Send works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached is runnable code that triggers the green LED when irqNumber = CAN0_ORed_0_15_MB_IRQn occurs for visualization purposes.&lt;/P&gt;&lt;P&gt;A summary of my code is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rhyse&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* ###################################################################&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename&amp;nbsp;&amp;nbsp;&amp;nbsp; : main.c&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processor&amp;nbsp;&amp;nbsp; : S32K14x&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Abstract&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main module.&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module contains user's application code.&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Settings&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Contents&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No public methods&lt;BR /&gt;&amp;nbsp;**&lt;BR /&gt;&amp;nbsp;** ###################################################################*/&lt;BR /&gt;/*!&lt;BR /&gt;&amp;nbsp;** @file main.c&lt;BR /&gt;&amp;nbsp;** @version 01.00&lt;BR /&gt;&amp;nbsp;** @brief&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main module.&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module contains user's application code.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;/*!&lt;BR /&gt;&amp;nbsp;**&amp;nbsp; @addtogroup main_module main module documentation&lt;BR /&gt;&amp;nbsp;**&amp;nbsp; @{&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;/* MODULE main */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Including necessary module. Cpu.h contains other modules needed for compiling.*/&lt;BR /&gt;#include "Cpu.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;volatile int exit_code = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* User includes (#include below this line is not maintained by Processor Expert) */&lt;BR /&gt;#include "initialization.h"&lt;BR /&gt;#include "canFunctions.h"&lt;BR /&gt;#include "timingFunctions.h"&lt;BR /&gt;#include "watchdog.h"&lt;BR /&gt;#include "pins.h"&lt;BR /&gt;#include &amp;lt;stdbool.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*!&lt;BR /&gt;&amp;nbsp;\brief The main function for the project.&lt;BR /&gt;&amp;nbsp;\details The startup initialization sequence is the following:&lt;BR /&gt;&amp;nbsp;* - startup asm routine&lt;BR /&gt;&amp;nbsp;* - main()&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;int main(void) {&lt;BR /&gt;#define INST_CANCOM1 (0U)&lt;BR /&gt;#define RX_MAILBOX&amp;nbsp; (0UL)&lt;BR /&gt;#define RX_MSG_ID&amp;nbsp;&amp;nbsp; (2UL)&lt;BR /&gt;#define LED_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD&lt;BR /&gt;#define GPIO_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTD&lt;BR /&gt;#define PCC_INDEX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCC_PORTD_INDEX&lt;BR /&gt;#define LED0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15U&lt;BR /&gt;#define LED1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16U&lt;BR /&gt;#define LED2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0U&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define BTN_GPIO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTC&lt;BR /&gt;#define BTN1_PIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13U&lt;BR /&gt;#define BTN2_PIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12U&lt;BR /&gt;#define BTN_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTC&lt;BR /&gt;#define BTN_PORT_IRQn&amp;nbsp;&amp;nbsp; PORTC_IRQn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;typedef enum {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;LED0_CHANGE_REQUESTED = 0x00U, LED1_CHANGE_REQUESTED = 0x01U&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} can_commands_list;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void systemInit(volatile int *exit_code) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize and configure clocks&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; Setup system clocks&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; Enable clock feed for Ports&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; See Clock Manager component for more info&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize pins&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; Setup output pins for LEDs&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; See PinSettings component for more info&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//pins_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Initialize all the CANbuses as defined by user&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;flexcan_state_t canCom1_State;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t preDividerValue;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;const flexcan_user_config_t canCom1_InitConfig = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .fd_enable = true,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .pe_clock = FLEXCAN_CLK_SOURCE_SOSCDIV2,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .max_num_mb = 2,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .num_id_filters = FLEXCAN_RX_FIFO_ID_FILTERS_8,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .is_rx_fifo_needed = false,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .flexcanMode = FLEXCAN_NORMAL_MODE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .payload = FLEXCAN_PAYLOAD_SIZE_16,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .bitrate = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .propSeg = 7,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg1 = 4,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg2 = 1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .preDivider = 0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rJumpwidth = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .bitrate_cbt = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .propSeg = 11,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg1 = 1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg2 = 1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .preDivider = 0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rJumpwidth = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .transfer_type = FLEXCAN_RXFIFO_USING_INTERRUPTS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rxFifoDMAChannel = 0U&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_DRV_Init(0U, &amp;amp;canCom1_State, &amp;amp;canCom1_InitConfig);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Write your local variable definitions here */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* End of local variable definition */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*#################################################################################################################*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/&lt;BR /&gt;#ifdef PEX_RTOS_INIT&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** End of Processor Expert internal initialization.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*#################################################################################################################*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Write your code here */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;systemInit(&amp;amp;exit_code);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;flexcan_data_info_t dataInfo = { .data_length = 1U, .msg_id_type =&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_MSG_ID_STD, .enable_brs = true, .fd_enable = true,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.fd_padding = 0U };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Configure RX message buffer with index RX_MSG_ID and RX_MAILBOX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX, &amp;amp;dataInfo, RX_MSG_ID);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Define receive buffer */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;flexcan_msgbuff_t recvBuff;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Start receiving data in RX_MAILBOX. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX, &amp;amp;recvBuff);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Wait until the previous FlexCAN receive is completed */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1, RX_MAILBOX)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;== STATUS_BUSY)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the received message ID and payload */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((recvBuff.data[0] == LED0_CHANGE_REQUESTED)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; recvBuff.msgId == RX_MSG_ID) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Toggle output value LED1 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED0));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else if ((recvBuff.data[0] == LED1_CHANGE_REQUESTED)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; recvBuff.msgId == RX_MSG_ID) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Toggle output value LED0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED1));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* End of your code */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** Don't write any code pass this line, or it will be deleted during code generation. ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*#################################################################################################################*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** 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;&amp;nbsp;&amp;nbsp; &amp;nbsp;PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** End of RTOS startup code.&amp;nbsp; ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (;;) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (exit_code != 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return exit_code;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** 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;&lt;/P&gt;&lt;P&gt;/* END main */&lt;BR /&gt;/*!&lt;BR /&gt;&amp;nbsp;** @}&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;** ###################################################################&lt;BR /&gt;&amp;nbsp;**&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This file was created by Processor Expert 10.1 [05.21]&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for the Freescale S32K series of microcontrollers.&lt;BR /&gt;&amp;nbsp;**&lt;BR /&gt;&amp;nbsp;** ###################################################################&lt;BR /&gt;&amp;nbsp;*/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 28 Nov 2018 21:42:42 GMT</pubDate>
    <dc:creator>rmaryniu</dc:creator>
    <dc:date>2018-11-28T21:42:42Z</dc:date>
    <item>
      <title>CAN Receive using SDK Functions</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812828#M565</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;/P&gt;&lt;P&gt;I am trying to use the SDK function FLEXCAN_DRV_Receive in my program by mimicking what is done in flexcan_encrypted_s32k144 (which runs correctly). I copied and pasted the code into my own program but it doesn't seem to work. The program correctly waits for the message to be sent, but then triggers the DefaultISR when the message is sent. FLEXCAN_DRV_Send works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached is runnable code that triggers the green LED when irqNumber = CAN0_ORed_0_15_MB_IRQn occurs for visualization purposes.&lt;/P&gt;&lt;P&gt;A summary of my code is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rhyse&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* ###################################################################&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename&amp;nbsp;&amp;nbsp;&amp;nbsp; : main.c&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processor&amp;nbsp;&amp;nbsp; : S32K14x&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Abstract&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main module.&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module contains user's application code.&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Settings&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Contents&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No public methods&lt;BR /&gt;&amp;nbsp;**&lt;BR /&gt;&amp;nbsp;** ###################################################################*/&lt;BR /&gt;/*!&lt;BR /&gt;&amp;nbsp;** @file main.c&lt;BR /&gt;&amp;nbsp;** @version 01.00&lt;BR /&gt;&amp;nbsp;** @brief&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main module.&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module contains user's application code.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;/*!&lt;BR /&gt;&amp;nbsp;**&amp;nbsp; @addtogroup main_module main module documentation&lt;BR /&gt;&amp;nbsp;**&amp;nbsp; @{&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;/* MODULE main */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Including necessary module. Cpu.h contains other modules needed for compiling.*/&lt;BR /&gt;#include "Cpu.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;volatile int exit_code = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* User includes (#include below this line is not maintained by Processor Expert) */&lt;BR /&gt;#include "initialization.h"&lt;BR /&gt;#include "canFunctions.h"&lt;BR /&gt;#include "timingFunctions.h"&lt;BR /&gt;#include "watchdog.h"&lt;BR /&gt;#include "pins.h"&lt;BR /&gt;#include &amp;lt;stdbool.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*!&lt;BR /&gt;&amp;nbsp;\brief The main function for the project.&lt;BR /&gt;&amp;nbsp;\details The startup initialization sequence is the following:&lt;BR /&gt;&amp;nbsp;* - startup asm routine&lt;BR /&gt;&amp;nbsp;* - main()&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;int main(void) {&lt;BR /&gt;#define INST_CANCOM1 (0U)&lt;BR /&gt;#define RX_MAILBOX&amp;nbsp; (0UL)&lt;BR /&gt;#define RX_MSG_ID&amp;nbsp;&amp;nbsp; (2UL)&lt;BR /&gt;#define LED_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD&lt;BR /&gt;#define GPIO_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTD&lt;BR /&gt;#define PCC_INDEX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCC_PORTD_INDEX&lt;BR /&gt;#define LED0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15U&lt;BR /&gt;#define LED1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16U&lt;BR /&gt;#define LED2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0U&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define BTN_GPIO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTC&lt;BR /&gt;#define BTN1_PIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13U&lt;BR /&gt;#define BTN2_PIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12U&lt;BR /&gt;#define BTN_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTC&lt;BR /&gt;#define BTN_PORT_IRQn&amp;nbsp;&amp;nbsp; PORTC_IRQn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;typedef enum {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;LED0_CHANGE_REQUESTED = 0x00U, LED1_CHANGE_REQUESTED = 0x01U&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} can_commands_list;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void systemInit(volatile int *exit_code) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize and configure clocks&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; Setup system clocks&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; Enable clock feed for Ports&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; See Clock Manager component for more info&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize pins&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; Setup output pins for LEDs&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp; -&amp;nbsp;&amp;nbsp; See PinSettings component for more info&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//pins_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Initialize all the CANbuses as defined by user&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;flexcan_state_t canCom1_State;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t preDividerValue;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;const flexcan_user_config_t canCom1_InitConfig = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .fd_enable = true,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .pe_clock = FLEXCAN_CLK_SOURCE_SOSCDIV2,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .max_num_mb = 2,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .num_id_filters = FLEXCAN_RX_FIFO_ID_FILTERS_8,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .is_rx_fifo_needed = false,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .flexcanMode = FLEXCAN_NORMAL_MODE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .payload = FLEXCAN_PAYLOAD_SIZE_16,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .bitrate = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .propSeg = 7,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg1 = 4,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg2 = 1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .preDivider = 0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rJumpwidth = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .bitrate_cbt = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .propSeg = 11,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg1 = 1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .phaseSeg2 = 1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .preDivider = 0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rJumpwidth = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .transfer_type = FLEXCAN_RXFIFO_USING_INTERRUPTS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rxFifoDMAChannel = 0U&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_DRV_Init(0U, &amp;amp;canCom1_State, &amp;amp;canCom1_InitConfig);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Write your local variable definitions here */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* End of local variable definition */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*#################################################################################################################*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/&lt;BR /&gt;#ifdef PEX_RTOS_INIT&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** End of Processor Expert internal initialization.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*#################################################################################################################*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Write your code here */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;systemInit(&amp;amp;exit_code);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;flexcan_data_info_t dataInfo = { .data_length = 1U, .msg_id_type =&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_MSG_ID_STD, .enable_brs = true, .fd_enable = true,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.fd_padding = 0U };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Configure RX message buffer with index RX_MSG_ID and RX_MAILBOX */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX, &amp;amp;dataInfo, RX_MSG_ID);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Define receive buffer */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;flexcan_msgbuff_t recvBuff;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Start receiving data in RX_MAILBOX. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX, &amp;amp;recvBuff);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Wait until the previous FlexCAN receive is completed */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1, RX_MAILBOX)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;== STATUS_BUSY)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check the received message ID and payload */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((recvBuff.data[0] == LED0_CHANGE_REQUESTED)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; recvBuff.msgId == RX_MSG_ID) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Toggle output value LED1 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED0));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else if ((recvBuff.data[0] == LED1_CHANGE_REQUESTED)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;amp;&amp;amp; recvBuff.msgId == RX_MSG_ID) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Toggle output value LED0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PINS_DRV_TogglePins(GPIO_PORT, (1 &amp;lt;&amp;lt; LED1));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* End of your code */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** Don't write any code pass this line, or it will be deleted during code generation. ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*#################################################################################################################*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** 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;&amp;nbsp;&amp;nbsp; &amp;nbsp;PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** End of RTOS startup code.&amp;nbsp; ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (;;) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (exit_code != 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return exit_code;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*** 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;&lt;/P&gt;&lt;P&gt;/* END main */&lt;BR /&gt;/*!&lt;BR /&gt;&amp;nbsp;** @}&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;** ###################################################################&lt;BR /&gt;&amp;nbsp;**&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This file was created by Processor Expert 10.1 [05.21]&lt;BR /&gt;&amp;nbsp;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for the Freescale S32K series of microcontrollers.&lt;BR /&gt;&amp;nbsp;**&lt;BR /&gt;&amp;nbsp;** ###################################################################&lt;BR /&gt;&amp;nbsp;*/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Nov 2018 21:42:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812828#M565</guid>
      <dc:creator>rmaryniu</dc:creator>
      <dc:date>2018-11-28T21:42:42Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Receive using SDK Functions</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812829#M566</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rhyse,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;why do you use Processor Expert and its drivers, when you finally do not use PE generated variables/structures and add your own. Then the driver cannot work properly.&lt;/P&gt;&lt;P&gt;Do following changes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. do not install flexcan interrupts in your systemInit(), it is done within flexcan driver already.&lt;/P&gt;&lt;P&gt;so comment below lines&lt;/P&gt;&lt;P&gt;/* Install buttons ISR */&lt;BR /&gt; // INT_SYS_InstallHandler(CAN0_ORed_0_15_MB_IRQn, &amp;amp;ignoreISR, NULL);&lt;/P&gt;&lt;P&gt;/* Enable buttons interrupt */&lt;BR /&gt; // INT_SYS_EnableIRQ(CAN0_ORed_0_15_MB_IRQn);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. use &lt;SPAN&gt;PE generated variables/structures when calling FLEXCAN_DRV_Init()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;within canFunctions.c &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- add&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;#include "can0.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- comment your added flexcan_state_t canCom1_State; and flexcan_user_config_t canCom1_InitConfig&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- use just&amp;nbsp;FLEXCAN_DRV_Init(canbus, &amp;amp;CAN0_State, &amp;amp;CAN0_InitConfig0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;After those changes the code runs normally and when message is received you can pass&amp;nbsp; FLEXCAN_DRV_GetTransferStatus().&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BR, Petr&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2018 12:36:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812829#M566</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2018-11-30T12:36:29Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Receive using SDK Functions</title>
      <link>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812830#M567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Petr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This worked great. Thank you for the answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rhyse&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2018 02:58:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-SDK/CAN-Receive-using-SDK-Functions/m-p/812830#M567</guid>
      <dc:creator>rmaryniu</dc:creator>
      <dc:date>2018-12-03T02:58:48Z</dc:date>
    </item>
  </channel>
</rss>

