typedef enum {CAN_50KBPS, CAN_100KBPS, CAN_125KBPS, CAN_125KBPS32MHZ, CAN_125P1KBPS31P9MHZ,CAN_250KBPS, CAN_500KBPS, CAN_1000KBPS} BITRATE; typedef enum {STANDARD_FORMAT = 0, EXTENDED_FORMAT} CAN_FORMAT; typedef enum {DATA_FRAME = 0, REMOTE_FRAME} CAN_FRAME; typedef struct { uint32_t id; /* 29 bit identifier */ uint8_t data[8]; /* Data field */ uint8_t len; /* Length of data field in bytes */ uint8_t ch; /* Object channel(Not use) */ uint8_t format; /* 0 - STANDARD, 1- EXTENDED IDENTIFIER */ uint8_t type; /* 0 - DATA FRAME, 1 - REMOTE FRAME */ } CAN_msg_t; bool CANInit(BITRATE bitrate, int remap); void CANReceive(CAN_msg_t* CAN_rx_msg); void CANSend(CAN_msg_t* CAN_tx_msg); uint8_t CANMsgAvail(void);