📄 canreg.h
字号:
{
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 + -