#define CAN_IF_2A 0x01
#define CAN_IF_2B 0x02
#define CAN_SPEED_10K 0
#define CAN_SPEED_20K 1
#define CAN_SPEED_50K 2
#define CAN_SPEED_100K 3
#define CAN_SPEED_125K 4
#define CAN_SPEED_250K 5
#define CAN_SPEED_500K 6
#define CAN_SPEED_800K 7
#define CAN_SPEED_1M 8
#define CAN_SPEED_CUSTOM 255
struct _CANFRAME | |
{ | |
uint32_t id; | |
uint8_t len; | |
uint8_t byte[8]; | |
uint8_t ext; | |
uint8_t rtr; | |
} |
See: | Type struct _CANFRAME |
struct _CANINFO | |
{ | |
HANDLE volatile can_rx_rdy; | |
HANDLE volatile can_tx_rdy; | |
uint32_t can_rx_frames; | |
uint32_t can_tx_frames; | |
uint32_t can_interrupts; | |
uint32_t can_overruns; | |
uint32_t can_errors; | |
} |
See: | Type struct _CANINFO |
struct ifcan | |
{ | |
uint8_t can_type; | |
uint32_t can_baudrate; | |
uint8_t can_acc_mask[4]; | |
uint8_t can_acc_code[4]; | |
uint32_t can_rtimeout; | |
uint8_t (*can_rxavail)(NUTDEVICE*); | |
uint8_t (*can_txfree)(NUTDEVICE*); | |
uint8_t (*can_recv)(NUTDEVICE*,CANFRAME*); | |
void (*can_send)(NUTDEVICE*,CANFRAME*); | |
void (*can_set_ac)(NUTDEVICE*,uint8_t*); | |
void (*can_set_am)(NUTDEVICE*,uint8_t*); | |
uint8_t (*can_set_baud)(NUTDEVICE*,uint32_t); | |
} |
See: | Type struct ifcan |