?? canreg.h
字號:
/******************************************************************************
** 文 件 名: CANREG.H
** 版 本: v1.0
** 日 期: 2006年8月24日
** 描 述: CAN模塊寄存器類型定義、地址定義頭文件
******************************************************************************/
#ifndef _CANREG_H_
#define _CANREG_H_
#include "..\LPC2294GenReg.h"
/* 驗收濾波器RAM首地址 */
#define CANAFRAM_GADR 0xE0038000
/* 定義全局應(yīng)用的寄存器 */
#define CANAFMR_GADR 0xE003C000 /* 驗收濾波控制 */
#define CANSFF_sa_GADR 0xE003C004 /* 標(biāo)準(zhǔn)幀表格 */
#define CANSFF_GRP_sa_GADR 0xE003C008 /* 標(biāo)準(zhǔn)幀組表格 */
#define CANEFF_sa_GADR 0xE003C00C /* 擴(kuò)展幀表格 */
#define CANEFF_GRP_sa_GADR 0xE003C010 /* 擴(kuò)展幀組表格 */
#define CANENDofTable_GADR 0xE003C014 /* 表格結(jié)束地址 */
#define CANLUTerrAd_GADR 0xE003C018 /* LUT錯誤地址地址寄存器 */
#define CANLUTerr_GADR 0xE003C01C /* LUT錯誤寄存器 */
#define CANTxSR_GADR 0xE0040000 /* 發(fā)送狀態(tài)寄存器 */
#define CANRxSR_GADR 0xE0040004 /* 接收狀態(tài)寄存器 */
#define CANMSR_GADR 0xE0040008 /* 錯誤狀態(tài)寄存器 */
/* CAN寄存器基地址定義 */
#define CANMOD_BADR 0xE0044000 /* 模式寄存器 */
#define CANCMR_BADR 0xE0044004 /* 命令寄存器 */
#define CANGSR_BADR 0xE0044008 /* 全局狀態(tài)寄存器 */
#define CANICR_BADR 0xE004400C /* 中斷及捕獲寄存器 */
#define CANIER_BADR 0xE0044010 /* 中斷使能寄存器 */
#define CANBTR_BADR 0xE0044014 /* 總線時序寄存器 */
#define CANEWL_BADR 0xE0044018 /* 報警限制寄存器 */
#define CANSR_BADR 0xE004401C /* 狀態(tài)寄存器 */
#define CANRFS_BADR 0xE0044020 /* 接收幀信息寄存器 */
#define CANRID_BADR 0xE0044024 /* 接收報文ID寄存器 */
#define CANRDA_BADR 0xE0044028 /* 接收數(shù)據(jù)1~4 */
#define CANRDB_BADR 0xE004402C /* 接收數(shù)據(jù)5~8 */
#define CANTFI1_BADR 0xE0044030 /* CAN發(fā)送緩沖區(qū)1幀信息寄存器 */
#define CANTID1_BADR 0xE0044034 /* CAN發(fā)送緩沖區(qū)1報文ID寄存器 */
#define CANTDA1_BADR 0xE0044038 /* CAN發(fā)送緩沖區(qū)1發(fā)送數(shù)據(jù)1~4寄存器 */
#define CANTDB1_BADR 0xE004403C /* CAN發(fā)送緩沖區(qū)1發(fā)送數(shù)據(jù)5~8寄存器 */
#define CANTFI2_BADR 0xE0044040 /* CAN發(fā)送緩沖區(qū)2幀信息寄存器 */
#define CANTID2_BADR 0xE0044044 /* CAN發(fā)送緩沖區(qū)2報文ID寄存器 */
#define CANTDA2_BADR 0xE0044048 /* CAN發(fā)送緩沖區(qū)2發(fā)送數(shù)據(jù)1~4寄存器 */
#define CANTDB2_BADR 0xE004404C /* CAN發(fā)送緩沖區(qū)2發(fā)送數(shù)據(jù)5~8寄存器 */
#define CANTFI3_BADR 0xE0044050 /* CAN發(fā)送緩沖區(qū)3幀信息寄存器 */
#define CANTID3_BADR 0xE0044054 /* CAN發(fā)送緩沖區(qū)3報文ID寄存器 */
#define CANTDA3_BADR 0xE0044058 /* CAN發(fā)送緩沖區(qū)3發(fā)送數(shù)據(jù)1~4寄存器 */
#define CANTDB3_BADR 0xE004405C /* CAN發(fā)送緩沖區(qū)3發(fā)送數(shù)據(jù)5~8寄存器 */
/* 定義RxBUF的基地址 */
#define RxBUF_BADR 0xE0044020
/* 定義TxBUF的基地址 */
#define TxBUF1_BADR 0xE0044030 /* CAN發(fā)送緩沖區(qū)1首地址 */
#define TxBUF2_BADR 0xE0044040 /* CAN發(fā)送緩沖區(qū)2首地址 */
#define TxBUF3_BADR 0xE0044050 /* CAN發(fā)送緩沖區(qū)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)))
/* 集中狀態(tài)寄存器 */
#define regCANTxSR (*((volatile uint32 *)(CANTxSR_GADR)))
#define regCANRxSR (*((volatile uint32 *)(CANRxSR_GADR)))
#define regCANMSR (*((volatile uint32 *)(CANMSR_GADR)))
/* 定義所有CAN模塊模式寄存器的數(shù)據(jù)類型 */
#define regCANMOD(CanNum) (*((volatile uint32 *)(CANMOD_BADR+CanNum* CAN_OFFSET_ADR)))
/* 定義所有CAN模塊命令寄存器的數(shù)據(jù)類型 */
#define regCANCMR(CanNum) (*((volatile uint32 *)(CANCMR_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊全局狀態(tài)寄存器的數(shù)據(jù)類型 */
#define regCANGSR(CanNum) (*((volatile uint32 *)(CANGSR_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊中斷和捕獲寄存器的數(shù)據(jù)類型 */
#define regCANICR(CanNum) (*((volatile uint32 *)(CANICR_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊中斷使能寄存器的數(shù)據(jù)類型 */
#define regCANIER(CanNum) (*((volatile uint32 *)(CANIER_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊總線時序寄存器的數(shù)據(jù)類型 */
#define regCANBTR(CanNum) (*((volatile uint32 *)(CANBTR_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊出錯警告界限寄存器的數(shù)據(jù)類型 */
#define regCANEWL(CanNum) (*((volatile uint32 *)(CANEWL_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊CANSR寄存器的數(shù)據(jù)類型 */
#define regCANSR(CanNum) (*((volatile uint32 *)(CANSR_BADR+CanNum* CAN_OFFSET_ADR )))
/* 所有CAN模塊的CANRFS數(shù)據(jù)類型定義 */
#define regCANRFS(CanNum) (*((volatile uint32 *)(CANRFS_BADR+CanNum* CAN_OFFSET_ADR )))
/* 所有CAN模塊的CANRID數(shù)據(jù)類型定義 */
#define regCANRID(CanNum) (*((volatile uint32 *)(CANRID_BADR+CanNum* CAN_OFFSET_ADR )))
/* 所有CAN模塊的CANRDA數(shù)據(jù)類型定義 */
#define regCANRDA(CanNum) (*((volatile uint32 *)(CANRDA_BADR+CanNum* CAN_OFFSET_ADR )))
/* 所有CAN模塊的CANRDB數(shù)據(jù)類型定義 */
#define regCANRDB(CanNum) (*((volatile uint32 *)(CANRDB_BADR+CanNum* CAN_OFFSET_ADR )))
/* 定義所有CAN模塊的發(fā)送緩沖區(qū)分量 */
#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
********************************************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -