📄 canreg.h
字号:
typedef union _cansr_
{
UINT32 Word; //字操作定义
struct
{
UINT32 RBS1_BIT :1; //接收缓冲区有效
UINT32 DOS1_BIT :1; //数据溢出
UINT32 TBS1_BIT :1; //TxBUF1锁定
UINT32 TCS1_BIT :1; //TxBUF1的数据发送完成
UINT32 RS1_BIT :1; //正在接收
UINT32 TS1_BIT :1; //TxBUF1的数据正在发送
UINT32 ES1_BIT :1; //错误认可
UINT32 BS1_BIT :1; //总线错误
UINT32 RBS2_BIT :1; //
UINT32 DOS2_BIT :1; //
UINT32 TBS2_BIT :1; // TxBUF2锁定
UINT32 TCS2_BIT :1; // TxBUF2的数据发送完成
UINT32 RS2_BIT :1; //
UINT32 TS2_BIT :1; // TxBUF2的数据正在发送
UINT32 ES2_BIT :1; //
UINT32 BS2_BIT :1; //
UINT32 RBS3_BIT :1; //
UINT32 DOS3_BIT :1; //
UINT32 TBS3_BIT :1; // TxBUF3锁定
UINT32 TCS3_BIT :1; // TxBUF3的数据发送完成
UINT32 RS3_BIT :1; //
UINT32 TS3_BIT :1; // TxBUF3的数据正在发送
UINT32 ES3_BIT :1; //
UINT32 BS3_BIT :1; //
UINT32 RSV_BIT8 :8; //
}Bits;
}uCANSR,*P_uCANSR;
//CANRFS寄存器的数据类型定义
typedef union _canrfs_
{
UINT32 Word; //字操作定义
struct
{
UINT32 IDIN_BIT :10; //ID索引值
UINT32 BP_BIT :1; //BP
UINT32 RSV_BIT5 :5; //保留
UINT32 DLC_BIT :4; //数据长度
UINT32 RSV_BIT10 :10; //保留
UINT32 RTR_BIT :1; //远程帧、数据帧识别位
UINT32 FF_BIT :1; //扩展帧、标准帧识别位
}Bits;
}uCANRFS,*P_uCANRFS;
//CANID寄存器的数据类型定义
typedef union _canid_
{
UINT32 Word; //字操作定义
union _frame_format
{
struct _strFrameFm_ //标准帧结构
{
UINT32 ID_BIT :11;
UINT32 RSV_BIT21 :21;
}stcSTRFRFM;
struct _etxFrameFm_ //远程帧结构
{
UINT32 ID_BIT :29;
UINT32 RSV_BIT3 :3;
}stcETXFRFM;
}FrameFm;
}uCANID,*P_uCANID;
//数据寄存器数据类型定义
typedef union _candf_
{
UINT32 Word; //字操作定义
struct
{
UINT32 Data1_BIT :8; //数据字节
UINT32 Data2_BIT :8;
UINT32 Data3_BIT :8;
UINT32 Data4_BIT :8;
}Bits;
}uCANDF,*P_uCANDF;
//CANTFI寄存器的数据类型定义
typedef union _cantfi_
{
UINT32 Word; //字节操作定义
struct
{
UINT32 PRIO_BIT :8; //缓冲区数据发送优先级的值
UINT32 RSV_BIT8 :8;
UINT32 DLC_BIT :4; //发送数据长度
UINT32 RSV_BIT10 :10;
UINT32 RTR_BIT :1; //远程帧、数据帧辨别位
UINT32 FF_BIT :1; //扩展帧、标准帧辨别位
}Bits;
}uCANTFI,*P_uCANTFI;
//定义发送帧结构
typedef struct _stcTXBUF_
{
uCANTFI TxFrameInfo; //发送帧信息结构
uCANID TxCANID; //发送帧信息ID
uCANDF CANTDA; //发送数据1~4字节
uCANDF CANTDB; //发送数据5~8字节
}*P_stcTxBUF,stcTxBUF;
//定义集中发送状态寄存器结构
typedef union _uCANTxSR_
{
UINT32 Word; //字操作定义
struct
{
UINT32 TS1_BIT :1; //CAN1正在发送状态
UINT32 TS2_BIT :1; //CAN2正在发送状态
UINT32 TS3_BIT :1; //CAN3正在发送状态
UINT32 TS4_BIT :1; //CAN4正在发送状态
UINT32 RSV_BIT1 :4; //保留
UINT32 TBS1_BIT :1; //CAN1发送缓冲区锁定状态
UINT32 TBS2_BIT :1; //CAN2发送缓冲区锁定状态
UINT32 TBS3_BIT :1; //CAN3发送缓冲区锁定状态
UINT32 TBS4_BIT :1; //CAN4发送缓冲区锁定状态
UINT32 RSV_BIT2 :4; //
UINT32 TCS1_BIT :1; //CAN1发送完成状态
UINT32 TCS2_BIT :1; //CAN2发送完成状态
UINT32 TCS3_BIT :1; //CAN3发送完成状态
UINT32 TCS4_BIT :1; //CAN4发送完成状态
UINT32 RSV_BIT12 :12; //保留
}Bits;
}*P_uCANTxSR,uCANTxSR;
//定义集中接收状态寄存器结构
typedef union _uCANRxSR_
{
UINT32 Word; //字操作定义
struct
{
UINT32 RS1_BIT :1; //CAN1正在接收状态
UINT32 RS2_BIT :1; //CAN2正在接收状态
UINT32 RS3_BIT :1; //CAN3正在接收状态
UINT32 RS4_BIT :1; //CAN4正在接收状态
UINT32 RSV_BIT1 :4; //保留
UINT32 RBS1_BIT :1; //CAN1接收缓冲区有效
UINT32 RBS2_BIT :1; //CAN2接收缓冲区有效
UINT32 RBS3_BIT :1; //CAN3接收缓冲区有效
UINT32 RBS4_BIT :1; //CAN4接收缓冲区有效
UINT32 RSV_BIT2 :4; //
UINT32 DOS1_BIT :1; //CAN1接收缓冲区溢出
UINT32 DOS2_BIT :1; //CAN2接收缓冲区溢出
UINT32 DOS3_BIT :1; //CAN3接收缓冲区溢出
UINT32 DOS4_BIT :1; //CAN4接收缓冲区溢出
UINT32 RSV_BIT12 :12; //保留
}Bits;
}*P_uCANRxSR, uCANRxSR;
//RxBuf Struct
typedef struct _stcRXBUF_
{
uCANRFS CANRcvFS;
uCANID RxCANID;
uCANDF CANRDA;
uCANDF CANRDB;
}*P_stcRxBUF,stcRxBUF;
//定义集中其他状态寄存器结构
typedef union _uCANMSR_
{
UINT32 Word; //字操作定义
struct
{
UINT32 ES1_BIT :1; //CAN1错误报警
UINT32 ES2_BIT :1; //CAN2错误报警
UINT32 ES3_BIT :1; //CAN3错误报警
UINT32 ES4_BIT :1; //CAN4错误报警
UINT32 RSV_BIT1 :4; //保留
UINT32 BS1_BIT :1; //CAN1总线脱离
UINT32 BS2_BIT :1; //CAN2总线脱离
UINT32 BS3_BIT :1; //CAN3总线脱离
UINT32 BS4_BIT :1; //CAN4总线脱离
UINT32 RSV_BIT20 :20; //保留
}Bits;
}*P_uCANMSR, uCANMSR;
//定义验收滤波模式寄存器结构
typedef union _canafmr_
{
UINT32 Word;
struct
{
UINT32 AccOff_BIT :1;
UINT32 AccBP_BIT :1;
UINT32 eFCAN_BIT :1;
UINT32 RSV_BIT29 :29;
}Bits;
}uCANAFMR,*P_uCANAFMR;
//验收滤波器表格单个标志符表格起始地址数据结构定义
typedef union _canF_sa_
{
UINT32 Word;
struct
{
UINT32 RSV_BIT2 :2;
UINT32 SADR_BIT :9;
UINT32 RSV_BIT21 :21;
}Bits;
}uCANF_sa,*P_uCANF_sa;
//验收滤波器表格标志符组表格起始地址数据结构定义
typedef union _canGRP_sa_
{
UINT32 Word;
struct
{
UINT32 RSV_BIT2 :2;
UINT32 SADR_BIT :10;
UINT32 RSV_BIT20 :20;
}Bits;
}uCANGRP_sa,*P_uCANGRP_sa;
//LUT错误寄存器数据结构定义
typedef union _canLUTerr
{
UINT32 Word;
struct
{
UINT32 LERR_BIT :1;
UINT32 RSV_BIT31 :31;
}Bits;
}uCANLUTerr,*P_uCANLUTerr;
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -