📄 lib_can.h
字号:
#ifndef __lib_can_H
#define __lib_can_H
/*typedef enum _mailboxnum_
{
AT91C_BASE_CAN_MB0 = 0,
AT91C_BASE_CAN_MB0,
AT91C_BASE_CAN_MB0,
AT91C_BASE_CAN_MB0,
MailBox4,
MailBox5,
MailBox6,
MailBox7
}MailBoxNUM;*/
/*------------------*/
/* CAN Definition */
/*------------------*/
#define AT91B_CAN_TRANSCEIVER_RS (1<<2) // PA2
#define AT91C_TEST_NOK 0
#define AT91C_TEST_OK 1
#define AT91C_CAN_TIMEOUT 100000
#define USE_CAN_cycRCV_BUF_SIZE 50//*环形缓冲区大小
//*定义一个与CANMailBox类似得数据结构,便于接受
/*pedef union _canrdx_
{
ULONG Word; //字操作定义
struct
{
ULONG Data1 :8; //数据字节
ULONG Data2 :8;
ULONG Data3 :8;
ULONG Data4 :8;
}Bits;
}uCANRDx,*P_uCANRDx;*/
typedef struct _stcRXBUF_
{
ULONG RDA;
ULONG RDB;
}*P_stcRxBUF,stcRxBUF;
typedef struct _RcvCANDataCycleBuf_
{
ULONG WritePoint :8; //CAN的写指针
ULONG ReadPoint :8; //CAN的读指针
ULONG FullFlag :8; //CAN缓冲区满标志
stcRxBUF RcvBuf[USE_CAN_cycRCV_BUF_SIZE];
}stcRcvCANCyBuf,*P_stcRcvCANCyBuf;
//应用环形缓冲区定义
extern stcRcvCANCyBuf CANRcvCyBufApp;//*建立缓冲区
//*---------------------------------------------------------------------------------------------
//* 函数区
//*--------------------------------------------------------------------------------------------
extern void CANInit(void);
extern void AT91F_InitMailbox(void);
#endif/* lib_can_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -