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

📄 canreg.h

📁 ZLG MINIARM-N20源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
{
	INT32U		DWord;				                                    /*  字操作定义                  */
	struct	
	{
		INT32U	TS1 	:1;		                                        /*  CAN1正在发送状态            */
		INT32U	TS2 	:1;		                                        /*  CAN2正在发送状态            */
		INT32U	TS3 	:1;		                                        /*  CAN3正在发送状态            */
		INT32U	TS4 	:1;		                                        /*  CAN4正在发送状态            */
		INT32U	RSV1	:4;		                                        /*  保留                        */
		INT32U	TBS1 	:1;		                                        /*  CAN1发送缓冲区锁定状态      */
		INT32U	TBS2 	:1;		                                        /*  CAN2发送缓冲区锁定状态      */
		INT32U	TBS3 	:1;		                                        /*  CAN3发送缓冲区锁定状态      */
		INT32U	TBS4 	:1;		                                        /*  CAN4发送缓冲区锁定状态      */
		INT32U	RSV2 	:4;		                                           
		INT32U	TCS1 	:1;		                                        /*  CAN1发送完成状态            */
		INT32U	TCS2 	:1;		                                        /*  CAN2发送完成状态            */
		INT32U	TCS3 	:1;		                                        /*  CAN3发送完成状态            */
		INT32U	TCS4 	:1;		                                        /*  CAN4发送完成状态            */
		INT32U	RSV12	:12;	                                        /*  保留                        */
	}Bits;
}*P_uCANTxSR,uCANTxSR;

#define 	_CANTxSR				(*((volatile P_uCANTxSR) CANTxSR_GADR))

/*********************************************************************************************************
     定义 CANRxSR 寄存器:
*********************************************************************************************************/
typedef	union		_uCANRxSR_
{
	INT32U		DWord;				                                    /*  字操作定义                  */
	struct	
	{
		INT32U	RS1 	:1;		                                        /*  CAN1正在接收状态            */
		INT32U	RS2 	:1;		                                        /*  CAN2正在接收状态            */
		INT32U	RS3 	:1;		                                        /*  CAN3正在接收状态            */
		INT32U	RS4 	:1;		                                        /*  CAN4正在接收状态            */
		INT32U	RSV1	:4;		                                        /*  保留                        */
		INT32U	RBS1 	:1;		                                        /*  CAN1接收缓冲区有效          */
		INT32U	RBS2 	:1;		                                        /*  CAN2接收缓冲区有效          */
		INT32U	RBS3 	:1;		                                        /*  CAN3接收缓冲区有效          */
		INT32U	RBS4 	:1;		                                        /*  CAN4接收缓冲区有效          */
		INT32U	RSV2 	:4;		                                           
		INT32U	DOS1 	:1;		                                        /*  CAN1接收缓冲区溢出          */
		INT32U	DOS2 	:1;		                                        /*  CAN2接收缓冲区溢出          */
		INT32U	DOS3 	:1;		                                        /*  CAN3接收缓冲区溢出          */
		INT32U	DOS4 	:1;		                                        /*  CAN4接收缓冲区溢出          */
		INT32U	RSV12	:12;	                                        /*  保留                        */
	}Bits;
}*P_uCANRxSR, uCANRxSR;

#define 	_CANRxSR				(*((volatile P_uCANRxSR) CANRxSR_GADR))

/*********************************************************************************************************
     定义接收帧的结构
*********************************************************************************************************/
typedef	struct	_stcRXBUF_
{
	uCANRFS	CANRcvFS;
	uCANRID	RxCANID;
	uCANRDx	RDA;
	uCANRDx	RDB;
}*P_stcRxBUF,stcRxBUF;

#define	RxBUF(CanNum)	(*((volatile P_stcRxBUF)( RxBUF_BADR+CanNum*CAN_OFFSET_ADR)))

/*********************************************************************************************************
      定义 CANMSR 寄存器:
*********************************************************************************************************/
typedef	union		_uCANMSR_
{
	INT32U		DWord;				                                    /*  字操作定义                  */
	struct	
	{
		INT32U	ES1 		:1;		                                    /*  CAN1错误报警                */
		INT32U	ES2 		:1;		                                    /*  CAN2错误报警                */
		INT32U	ES3 		:1;		                                    /*  CAN3错误报警                */
		INT32U	ES4 		:1;		                                    /*  CAN4错误报警                */
		INT32U	RSV1		:4;		                                    /*  保留                        */
		INT32U	BS1 		:1;		                                    /*  CAN1总线脱离                */
		INT32U	BS2 		:1;		                                    /*  CAN2总线脱离                */
		INT32U	BS3 		:1;		                                    /*  CAN3总线脱离                */
		INT32U	BS4 		:1;		                                    /*  CAN4总线脱离                */
		INT32U	RSV20		:20;	                                    /*  保留                        */
	}Bits;
}*P_uCANMSR, uCANMSR;

#define 	_CANMSR				(*((volatile P_uCANMSR) CANMSR_GADR))
/*********************************************************************************************************
     定义 CANAFMR 寄存器:
*********************************************************************************************************/
typedef	union		_canafmr_
{
	INT32U	DWord;
	struct	
	{
		INT32U	AccOff 	:1;	    
		INT32U	AccBP 	:1;	  
		INT32U	eFCAN 	:1;	
		INT32U	RSV29 	:29;
	}Bits;
}uCANAFMR,*P_uCANAFMR;

#define 	_CANAFMR			(*((volatile P_uCANAFMR) CANAFMR_GADR))

/*********************************************************************************************************
     FullCAN滤波器和标准帧表格数据类型定义
*********************************************************************************************************/
typedef	struct _AF_SFF_CELL_
{
	INT32U UpId		:11;	                                            /*   11bit ID1                  */
	INT32U UpRsv	:1;		                                          
	INT32U UpDis	:1;		                                            /*   禁能位                     */
	INT32U UpCh		:3;		                                            /*   CAN控制器号                */

	INT32U LoId		:11;	                                            /*   11bit ID0                  */
	INT32U LoRsv	:1;		                                         
	INT32U LoDis	:1;		                                            /*   禁能位                     */
	INT32U LoCh		:3;		                                            /*   CAN控制器号                */
}stcAF_SFF_CELL,*P_stcAF_SFF_CELL;

/*********************************************************************************************************
      CAN滤波器扩展帧表格数据类型定义
*********************************************************************************************************/
typedef	struct	_AF_EFF_CELL_
{
	INT32U Id		:29;	                                            /*   29bit EFF ID               */
	INT32U Ch		:3;		                                            /*   CAN控制器号                */
}stcAF_EFF_CELL,*P_stcAF_EFF_CELL;

/*********************************************************************************************************
     FullCAN模式下自动接收的帧的结构
*********************************************************************************************************/
typedef struct _AF_AUTOSTORE_MSG
{
	struct tag_Head
	{
		INT32U ID	:11;
		INT32U RSV5	:5;
		INT32U DLC	:4;
		INT32U RSV12:4;
		INT32U SEM	:2;
		INT32U RSV41:4;
		INT32U RTR	:1;
		INT32U FF	:1;	
	}Head;
	uCANRDx 	da;
	uCANRDx 	db;
}stcAF_AUTOSTORE_MSG,*P_stcAF_AUTOSTORE_MSG;

/*********************************************************************************************************
     定义 SFF_sa 寄存器:
*********************************************************************************************************/
typedef	union	_canF_sa_
{
	INT32U	DWord;
	struct	
	{
		INT32U	RSV2 	:2;
		INT32U	SADR 	:9;	
		INT32U	RSV21 	:21;
	}Bits;
}uCANF_sa,*P_uCANF_sa;

#define 	_CANSFF_sa			(*((volatile P_uCANF_sa)(CANSFF_sa_GADR)))
#define 	_CANEFF_sa			(*((volatile P_uCANF_sa)(CANEFF_sa_GADR)))
#define 	_CANLUTerrAd		(*((volatile P_uCANF_sa)(CANLUTerrAd_GADR)))

/*********************************************************************************************************
    定义 SFF_GRP_sa 寄存器:
*********************************************************************************************************/
typedef	union	_canGRP_sa_
{
	INT32U	DWord;
	struct	
	{
		INT32U	RSV2 	:2;
		INT32U	SADR 	:10;
		INT32U	RSV20 	:20;
	}Bits;
}uCANGRP_sa,*P_uCANGRP_sa;

#define 	_CANSFF_GRP_sa		(*((volatile P_uCANGRP_sa)(CANSFF_GRP_sa_GADR)))
#define 	_CANEFF_GRP_sa		(*((volatile P_uCANGRP_sa)(CANEFF_GRP_sa_GADR)))
#define 	_CANENDofTable		(*((volatile P_uCANGRP_sa)(CANENDofTable_GADR)))
/*********************************************************************************************************
     定义 LUTerr 寄存器:
*********************************************************************************************************/
typedef	union	_canLUTerr
{
	INT32U	DWord;
	struct	
	{
		INT32U	LERR 	:1;
		INT32U	RSV31 	:31;
	}Bits;
}uCANLUTerr,*P_uCANLUTerr;

#define 	_CANLUTerr			(*((volatile P_uCANLUTerr)( CANLUTerr_GADR)))


typedef struct tagCANFrame
{
	BOOLEAN IsRemote;
	BOOLEAN IsExtend;
	INT8U   DataLen;
	INT32U  ID;
	INT8U   Buf[8];
}stcCANFrame;

#ifdef __cplusplus
    }
#endif									                                /*  __cplusplus				    */
#endif									                                /*  _CANREG_H_                */
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/


⌨️ 快捷键说明

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