⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can.h

📁 DSP56F807的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 + -