17#define PHAL_CAN_TX_TIMEOUT (5000U)
18#define PHAL_CAN_INIT_TIMEOUT (5000U)
22#define PHAL_CAN_16MHz_1M (0x033a0000)
23#define PHAL_CAN_24MHz_1M (0x03270001)
24#define PHAL_CAN_36MHz_1M (0x033c0001)
25#define PHAL_CAN_42MHz_1M (0x034e0001)
27#define PHAL_CAN_16MHz_500k (0x033a0001)
28#define PHAL_CAN_24MHz_500k (0x033a0002)
29#define PHAL_CAN_36MHz_500k (0x03270005)
30#define PHAL_CAN_42MHz_500k (0x034e0003)
32#define PHAL_CAN_16MHz_250k (0x003a0003)
33#define PHAL_CAN_24MHz_250k (0x003a0005)
34#define PHAL_CAN_36MHz_250k (0x003a0008)
38typedef enum : uint32_t {
70bool PHAL_initCAN(CAN_TypeDef* bus,
bool test_mode, uint32_t bit_rate);
bool PHAL_anyTxMailboxFree(CAN_TypeDef *bus)
Definition can.c:227
bool PHAL_rxCANMessage(CAN_TypeDef *bus, uint8_t fifo, CanMsgTypeDef_t *msg)
Definition can.c:262
void PHAL_txCANAbort(CAN_TypeDef *bus, uint8_t mbx)
Definition can.c:246
bool PHAL_txCANMessage(CanMsgTypeDef_t *msg, uint8_t mbx)
Find an empty TX mailbox and transmit a CAN message if one is found. Function will block until sucess...
Definition can.c:160
bool PHAL_txMailboxFree(CAN_TypeDef *bus, uint8_t mbx)
Definition can.c:214
PHAL_FDCAN_BaudRate_t
Supported baud rates for PER F4 CAN HAL.
Definition can.h:38
@ FDCAN_BAUD_1M
Definition can.h:41
@ FDCAN_BAUD_500K
Definition can.h:40
@ FDCAN_BAUD_250K
Definition can.h:39
bool PHAL_initCAN(CAN_TypeDef *bus, bool test_mode, uint32_t bit_rate)
Initilize CAN peripheral to bit_rate.
Definition can.c:15
void PHAL_CAN_txCallback(CAN_TypeDef *can)
Definition can.c:342
bool PHAL_getFreeTxMailbox(CAN_TypeDef *bus, uint8_t *mbx)
Definition can.c:231
bool PHAL_deinitCAN(CAN_TypeDef *bus)
Definition can.c:146
void PHAL_CAN_rxCallback(CanMsgTypeDef_t *msg)
Definition can.c:347
Classic CAN frame.
Definition can.h:49
uint32_t ExtId
Definition can.h:55
CAN_TypeDef * Bus
Definition can.h:50
uint8_t DLC
Definition can.h:57
uint16_t StdId
Definition can.h:54
bool IDE
Definition can.h:52