📄 can.h
字号:
#define RX_FLAG_BUF_FULL 0x01
#define RX_FLAG_OVERRUN 0x02
#define RX_FLAG_BUSOFF 0X04
#define RX_FLAG_TX_ERR_PASSIVE 0X08
#define RX_FLAG_RX_ERR_PASSIVE 0X10
#define RX_FLAG_TX_WARN 0X20
#define RX_FLAG_RX_WARN 0X40
#define RX_FLAG_WAKEUP 0X80
typedef struct can_frame {
int id[4];
int data[8];
int length;
int priority;
};
typedef struct can_config {
int timing; /* higher bits - BTR1, lower bits - BTR0 */
union {
struct {
unsigned long int filter0;
} f32b;
struct {
unsigned int filter0;
unsigned int filter1;
} f16b;
struct {
unsigned int filter0: 8;
unsigned int filter1: 8;
unsigned int filter2: 8;
unsigned int filter3: 8;
} f8b;
} acceptance0,mask0,acceptance1,mask1;
int filters; /* 0 - 2x 32bit filters, 1 - 4x 16 bit, 2 - 8x 8 bit, 3 - filter closed (no rx) */
};
void can_init(struct can_config *config);
/* set up can module according to values in configuration structure */
int can_rxstat(void);
/* get status of receive buffer: 0-empty, 1-at least one packet ready in buffer */
int can_tx(int buffer, struct can_frame *data);
/* buffer: 0,1,2: buffer1,2 or 3, other value - first empty buffer */
/* returns number of buffer used for transmission */
int can_rx(struct can_frame *data);
/* returns: -1 if no data avail or 0 & data stored in buffer */
short can_rxflag(void);
/* returns Receiver Flags in the Receiver Flag Register */
void can_clr_rxflag(short flag);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -