void can_init(void)
{
/* CAN 2.0 A/B Buffer configuration */
/* Set information about the data to be sent
* - 1 byte in length
* - Standard message ID
* - Bit rate switch enabled to use a different bitrate for the data segment
* - Flexible data rate enabled
* - Use zeros for FD padding
*/
flexcan_data_info_t dataInfo =
{
.data_length = 8,
.msg_id_type = FLEXCAN_MSG_ID_STD,
.enable_brs = true,
.fd_enable = true,
.fd_padding = 0U};
FLEXCAN_DRV_Init(INST_CANCOM1, &canCom1_State, &canCom1_InitConfig0);
FLEXCAN_DRV_ConfigPN(INST_CANCOM1, true, &canCom1_PNConfig);
/*
* add your CAN transceiver control configuration here if needed
* for example, toggle the EN/STANDBY pin of TJA1043/44 to enable the transceiver or
* let it enter normal work mode
*/
/* Configure TX message buffer with index TX_MSG_ID and TX_MAILBOX*/
FLEXCAN_DRV_ConfigTxMb(INST_CANCOM1, TX_MAILBOX, &dataInfo, TX_MSG_ID);
// INT_SYS_InstallHandler(CAN0_ORed_Err_Wakeup_IRQn, &CAN0_ERR_WAKEUP_IRQHandler, (isr_t*) 0);
// INT_SYS_EnableIRQ(CAN0_ORed_Err_Wakeup_IRQn);
/* Configure RX message buffer with index RX_MSG_ID and RX_MAILBOX */
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX, &dataInfo, RX_MSG_ID);
// INT_SYS_EnableIRQ(CAN0_ORed_0_31_MB_IRQn);
FLEXCAN_DRV_InstallEventCallback(INST_CANCOM1, CAN_TX_RX_Callback, NULL);/*install the TX/RX call back*/
/* Start receiving data in RX_MAILBOX. */
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX, &CAN_RX_Message_Buffer[CAN_RX_BufferIndex%CAN_RX_Buffer_MAX]);
}