You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
787 B
28 lines
787 B
#pragma once
|
|
|
|
// IRQs: FDCAN1_IT0, FDCAN1_IT1
|
|
// FDCAN2_IT0, FDCAN2_IT1
|
|
// FDCAN3_IT0, FDCAN3_IT1
|
|
|
|
#define CANFD
|
|
|
|
typedef struct {
|
|
volatile uint32_t header[2];
|
|
volatile uint32_t data_word[CANPACKET_DATA_SIZE_MAX/4U];
|
|
} canfd_fifo;
|
|
|
|
#define CANS_ARRAY_SIZE 3
|
|
extern FDCAN_GlobalTypeDef *cans[CANS_ARRAY_SIZE];
|
|
|
|
#define CAN_ACK_ERROR 3U
|
|
|
|
void can_clear_send(FDCAN_GlobalTypeDef *FDCANx, uint8_t can_number);
|
|
void update_can_health_pkt(uint8_t can_number, uint32_t ir_reg);
|
|
|
|
// ***************************** CAN *****************************
|
|
// FDFDCANx_IT1 IRQ Handler (TX)
|
|
void process_can(uint8_t can_number);
|
|
// FDFDCANx_IT0 IRQ Handler (RX and errors)
|
|
// blink blue when we are receiving CAN messages
|
|
void can_rx(uint8_t can_number);
|
|
bool can_init(uint8_t can_number);
|
|
|