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

📄 can.h

📁 can sja1000 主节点程序 已经通过调试
💻 H
字号:

#ifndef CAN_H_
#define CAN_H_



#define CanBasicAdd	   0xdf00 												//SJA1000片选地址


#ifndef TYPE
#define TYPE

typedef unsigned char tByte;

#endif


#ifndef FUNCTION
#define FUNCTION

extern void SJAInit(tByte const Reg_acr);									//SJA1000初始化
							
extern tByte SJASendData(tByte *Tdata,tByte const DatLen,
									tByte const TarID,SaID,TxRx);			//CAN发送数据

extern tByte SJARecvData(tByte *Rdata,tByte const DatLen);					//CAN接收数据


#endif

#define 	MODE		(*(volatile tByte xdata *)(CanBasicAdd+0x00))		//模式寄存器
#define 	CMR			(*(volatile tByte xdata *)(CanBasicAdd+0x01))		//命令寄存器
#define 	SR			(*(volatile tByte xdata *)(CanBasicAdd+0x02))		//状态寄存器
#define 	IR			(*(volatile tByte xdata *)(CanBasicAdd+0x03))		//中断寄存器
#define 	IER			(*(volatile tByte xdata *)(CanBasicAdd+0x04))		//中断使能寄存器
#define 	BTR0		(*(volatile tByte xdata *)(CanBasicAdd+0x06))		//总线定时寄存器1
#define 	BTR1		(*(volatile tByte xdata *)(CanBasicAdd+0x07))		//总线定时寄存器2
#define 	OCR			(*(volatile tByte xdata *)(CanBasicAdd+0x08))	   	//输出控制寄存器

#define 	ALC			(*(volatile tByte xdata *)(CanBasicAdd+0x0B))		//仲裁丢失捕捉寄存器
#define 	ECC			(*(volatile tByte xdata *)(CanBasicAdd+0x0C))	  	//错误代码捕捉寄存器
#define 	TXER		(*(volatile tByte xdata *)(CanBasicAdd+0x0F))	   	//发送错误计数器

#define 	ACR0		(*(volatile tByte xdata *)(CanBasicAdd+0x10))		//验收代码寄存器0
#define 	ACR1		(*(volatile tByte xdata *)(CanBasicAdd+0x11))
#define 	ACR2		(*(volatile tByte xdata *)(CanBasicAdd+0x12))
#define 	ACR3		(*(volatile tByte xdata *)(CanBasicAdd+0x13))

#define 	AMR0		(*(volatile tByte xdata *)(CanBasicAdd+0x14))		//验收屏蔽寄存器0
#define 	AMR1		(*(volatile tByte xdata *)(CanBasicAdd+0x15))
#define 	AMR2		(*(volatile tByte xdata *)(CanBasicAdd+0x16))
#define 	AMR3		(*(volatile tByte xdata *)(CanBasicAdd+0x17))

#define 	FIN(i)		(*(volatile tByte xdata *)(CanBasicAdd+0x10+i))		//发送/接收帧信息
#define 	ID1			(*(volatile tByte xdata *)(CanBasicAdd+0x11))	  	//发送/接收缓冲区之标示符1
#define 	ID2			(*(volatile tByte xdata *)(CanBasicAdd+0x12))	   	//发送/接收缓冲区之标示符2
#define 	DAT1(i)		(*(volatile tByte xdata *)(CanBasicAdd+0x13+i))		//发送/接收数据首址

#define 	RBSA		(*(volatile tByte xdata *)(CanBasicAdd+0x1E))	  	//接收缓冲器起始地址寄存器
#define 	CDR			(*(volatile tByte xdata *)(CanBasicAdd+0x1F))   	//时钟分频寄存器

#ifndef BIT_H_
#define BIT_H_

#define Bit(i)			(0x1<<(i))										//位选择

#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -