📄 canreg.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 + -