Hello Alexandru Nan,
I used the receive call back function, The code is the following, I can receive CAN message, but many times later, I Can't get any can message. Which issue is it?
static void ReceCANData_CallBack(uint8_t instance, flexcan_event_type_t eventType,
uint32_t buffIdx, flexcan_state_t *flexcanState)
{
/* Define receive buffer */
flexcan_msgbuff_t recvBuff;
if((FLEXCAN_EVENT_RXFIFO_COMPLETE==eventType)&&(FLEXCAN_MB_HANDLE_RXFIFO==buffIdx))
{
FLEXCAN_DRV_RxFifo(INST_CANCOM1,&recvBuff);
switch(recvBuff.msgId) // FOR Test
{
case Test1_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED0));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED1)|(1 << LED2));
break;
case Test2_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED1));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED0)|(1 << LED2));
break;
case Test3_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED2));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED0)|(1 << LED1));
break;
case Test4_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED0));
PINS_DRV_TogglePins(LED_GPIO, (1 << LED1));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED2));
break;
case Test5_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED0));
PINS_DRV_TogglePins(LED_GPIO, (1 << LED2));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED1));
break;
case Test6_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED1));
PINS_DRV_TogglePins(LED_GPIO, (1 << LED2));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED0));
break;
case Test7_ID:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED0));
PINS_DRV_TogglePins(LED_GPIO, (1 << LED1));
PINS_DRV_TogglePins(LED_GPIO, (1 << LED2));
break;
case Test8_ID:
/* Toggle output value LED1 */
//PINS_DRV_TogglePins(LED_GPIO, (1 << LED0));
PINS_DRV_ClearPins(LED_GPIO,(1 << LED0)|(1 << LED1)|(1 << LED2));
break;
default:
/* Toggle output value LED1 */
PINS_DRV_TogglePins(LED_GPIO, (1 << LED2));
break;
}
/* Send the information via CAN */
//SendCANData(TX_MAILBOX, recvBuff.msgId, recvBuff.data, recvBuff.dataLen);
}