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

📄 canreg.h

📁 Arm7
💻 H
字号:
/******************************************************************************
**	文  件  名:	CANREG.H
** 	版  	本:	v1.0
** 	日		期:	2006年8月24日
**	描		述:	CAN模块寄存器类型定义、地址定义头文件
******************************************************************************/

#ifndef	_CANREG_H_
#define	_CANREG_H_

#include "..\LPC2294GenReg.h"


/* 验收滤波器RAM首地址 */
#define		CANAFRAM_GADR			0xE0038000

/* 定义全局应用的寄存器 */
#define 	CANAFMR_GADR      		0xE003C000      	/* 验收滤波控制 */
#define 	CANSFF_sa_GADR      	0xE003C004      	/* 标准帧表格 */
#define 	CANSFF_GRP_sa_GADR 	0xE003C008      	/* 标准帧组表格 */
#define 	CANEFF_sa_GADR      	0xE003C00C      	/* 扩展帧表格 */
#define 	CANEFF_GRP_sa_GADR 	0xE003C010      	/* 扩展帧组表格 */
#define 	CANENDofTable_GADR  	0xE003C014      	/* 表格结束地址 */
#define 	CANLUTerrAd_GADR   	0xE003C018      	/* LUT错误地址地址寄存器 */
#define 	CANLUTerr_GADR      	0xE003C01C		/* LUT错误寄存器 */
#define 	CANTxSR_GADR   		0xE0040000      	/* 发送状态寄存器 */
#define 	CANRxSR_GADR      		0xE0040004      	/* 接收状态寄存器 */
#define 	CANMSR_GADR       		0xE0040008      	/* 错误状态寄存器 */

/* CAN寄存器基地址定义 */
#define 	CANMOD_BADR			0xE0044000     	/* 模式寄存器 */
#define 	CANCMR_BADR			0xE0044004      	/* 命令寄存器 */
#define 	CANGSR_BADR			0xE0044008      	/* 全局状态寄存器 */
#define 	CANICR_BADR			0xE004400C     	/* 中断及捕获寄存器 */
#define 	CANIER_BADR			0xE0044010      	/* 中断使能寄存器 */
#define 	CANBTR_BADR			0xE0044014      	/* 总线时序寄存器 */
#define 	CANEWL_BADR			0xE0044018      	/* 报警限制寄存器 */
#define 	CANSR_BADR  			0xE004401C      	/* 状态寄存器 */
#define 	CANRFS_BADR			0xE0044020      	/* 接收帧信息寄存器 */
#define		CANRID_BADR			0xE0044024      	/* 接收报文ID寄存器 */
#define 	CANRDA_BADR			0xE0044028      	/* 接收数据1~4 */
#define 	CANRDB_BADR 			0xE004402C      	/* 接收数据5~8 */
#define 	CANTFI1_BADR			0xE0044030      	/* CAN发送缓冲区1帧信息寄存器 */
#define 	CANTID1_BADR			0xE0044034      	/* CAN发送缓冲区1报文ID寄存器 */
#define 	CANTDA1_BADR			0xE0044038      	/* CAN发送缓冲区1发送数据1~4寄存器 */
#define 	CANTDB1_BADR			0xE004403C      	/* CAN发送缓冲区1发送数据5~8寄存器 */
#define 	CANTFI2_BADR			0xE0044040      	/* CAN发送缓冲区2帧信息寄存器 */
#define 	CANTID2_BADR			0xE0044044      	/* CAN发送缓冲区2报文ID寄存器 */
#define 	CANTDA2_BADR			0xE0044048     	/* CAN发送缓冲区2发送数据1~4寄存器 */
#define 	CANTDB2_BADR			0xE004404C      	/* CAN发送缓冲区2发送数据5~8寄存器 */
#define 	CANTFI3_BADR			0xE0044050      	/* CAN发送缓冲区3帧信息寄存器 */
#define 	CANTID3_BADR			0xE0044054      	/* CAN发送缓冲区3报文ID寄存器 */
#define 	CANTDA3_BADR			0xE0044058      	/* CAN发送缓冲区3发送数据1~4寄存器 */
#define 	CANTDB3_BADR			0xE004405C      	/* CAN发送缓冲区3发送数据5~8寄存器 */

/* 定义RxBUF的基地址 */
#define		RxBUF_BADR				0xE0044020		
/* 定义TxBUF的基地址 */
#define		TxBUF1_BADR			0xE0044030		/* CAN发送缓冲区1首地址 */
#define		TxBUF2_BADR			0xE0044040		/* CAN发送缓冲区2首地址 */
#define		TxBUF3_BADR			0xE0044050		/* CAN发送缓冲区3首地址 */

/* CAN各模块寄存器之间的线性差异 */
#define		CAN_OFFSET_ADR			0x4000				


/* 验收滤波器部分 */
#define regCANAFMR				(*((volatile uint32 *)(CANAFMR_GADR)))
#define regCANSFF_sa			(*((volatile uint32 *)(CANSFF_sa_GADR)))    
#define regCANSFF_GRP_sa		(*((volatile uint32 *)(CANSFF_GRP_sa_GADR)))    
#define regCANEFF_sa			(*((volatile uint32 *)(CANEFF_sa_GADR)))    
#define regCANEFF_GRP_sa		(*((volatile uint32 *)(CANEFF_GRP_sa_GADR))) 
#define regCANENDofTable		(*((volatile uint32 *)(CANENDofTable_GADR)))

/* LUT错误寄存器访问方式定义 */
#define regCANLUTerrAd			(*((volatile uint32 *)(CANLUTerrAd_GADR)))
#define regCANLUTerr			(*((volatile uint32 *)(CANLUTerr_GADR)))

/* 集中状态寄存器 */
#define regCANTxSR				(*((volatile uint32 *)(CANTxSR_GADR)))
#define regCANRxSR				(*((volatile uint32 *)(CANRxSR_GADR)))
#define regCANMSR				(*((volatile uint32 *)(CANMSR_GADR)))


/* 定义所有CAN模块模式寄存器的数据类型 */
#define regCANMOD(CanNum)		(*((volatile uint32 *)(CANMOD_BADR+CanNum* CAN_OFFSET_ADR)))

/* 定义所有CAN模块命令寄存器的数据类型 */
#define regCANCMR(CanNum)		(*((volatile uint32 *)(CANCMR_BADR+CanNum* CAN_OFFSET_ADR )))

/* 定义所有CAN模块全局状态寄存器的数据类型 */
#define regCANGSR(CanNum)		(*((volatile uint32 *)(CANGSR_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 定义所有CAN模块中断和捕获寄存器的数据类型 */
#define regCANICR(CanNum)		(*((volatile uint32 *)(CANICR_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 定义所有CAN模块中断使能寄存器的数据类型 */
#define regCANIER(CanNum)		(*((volatile uint32 *)(CANIER_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 定义所有CAN模块总线时序寄存器的数据类型 */
#define regCANBTR(CanNum)		(*((volatile uint32 *)(CANBTR_BADR+CanNum* CAN_OFFSET_ADR )))  

/* 定义所有CAN模块出错警告界限寄存器的数据类型 */
#define regCANEWL(CanNum)		(*((volatile uint32 *)(CANEWL_BADR+CanNum* CAN_OFFSET_ADR )))

/* 定义所有CAN模块CANSR寄存器的数据类型 */
#define regCANSR(CanNum)		(*((volatile uint32 *)(CANSR_BADR+CanNum* CAN_OFFSET_ADR )))  

/* 所有CAN模块的CANRFS数据类型定义 */
#define regCANRFS(CanNum)		(*((volatile uint32 *)(CANRFS_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 所有CAN模块的CANRID数据类型定义 */
#define regCANRID(CanNum)		(*((volatile uint32 *)(CANRID_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 所有CAN模块的CANRDA数据类型定义 */
#define regCANRDA(CanNum)		(*((volatile uint32 *)(CANRDA_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 所有CAN模块的CANRDB数据类型定义 */
#define regCANRDB(CanNum)		(*((volatile uint32 *)(CANRDB_BADR+CanNum* CAN_OFFSET_ADR ))) 

/* 定义所有CAN模块的发送缓冲区分量 */
#define regCANTFI1(CanNum)	(*((volatile uint32 *)(CANTFI1_BADR+CanNum* CAN_OFFSET_ADR)))    
#define regCANTID1(CanNum)	(*((volatile uint32 *)(CANTID1_BADR+CanNum*CAN_OFFSET_ADR)))   
#define regCANTDA1(CanNum)	(*((volatile uint32 *)(CANTDA1_BADR+CanNum*CAN_OFFSET_ADR)))   
#define regCANTDB1(CanNum)	(*((volatile uint32 *)(CANTDB1_BADR+CanNum*CAN_OFFSET_ADR)))  
#define regCANTFI2(CanNum)	(*((volatile uint32 *)(CANTFI2_BADR+CanNum*CAN_OFFSET_ADR)))    
#define regCANTID2(CanNum)	(*((volatile uint32 *)(CANTID2_BADR+CanNum*CAN_OFFSET_ADR))) 
#define regCANTDA2(CanNum)	(*((volatile uint32 *)(CANTDA2_BADR+CanNum*CAN_OFFSET_ADR)))
#define regCANTDB2(CanNum)	(*((volatile uint32 *)(CANTDB2_BADR+CanNum*CAN_OFFSET_ADR)))  
#define regCANTFI3(CanNum)	(*((volatile uint32 *)(CANTFI3_BADR+CanNum*CAN_OFFSET_ADR)))    
#define regCANTID3(CanNum)	(*((volatile uint32 *)(CANTID3_BADR+CanNum*CAN_OFFSET_ADR)))
#define regCANTDA3(CanNum)	(*((volatile uint32 *)(CANTDA3_BADR+CanNum*CAN_OFFSET_ADR))) 
#define regCANTDB3(CanNum)	(*((volatile uint32 *)(CANTDB3_BADR+CanNum*CAN_OFFSET_ADR)))

/* 定义所有CAN模块的RxBUF */
#define	regRxBUF(CanNum)		(*((volatile uint32 *)(RxBUF_BADR+CanNum*CAN_OFFSET_ADR)))

/* 定义所有CAN模块的TxBUF */
#define	regTxBUF1(CanNum)		(*((volatile uint32 *)(TxBUF1_BADR+CanNum*CAN_OFFSET_ADR)))
#define	regTxBUF2(CanNum)		(*((volatile uint32 *)(TxBUF2_BADR+CanNum*CAN_OFFSET_ADR)))
#define	regTxBUF3(CanNum)		(*((volatile uint32 *)(TxBUF3_BADR+CanNum*CAN_OFFSET_ADR)))


#endif
/*********************************************************************************************************
**                            			End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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