📄 can.h
字号:
/*******************************************************************************
| File Name : can.h
*******************************************************************************/
/* user transmmit structure */
typedef volatile struct
{
unsigned short stdid;
unsigned short extid;
unsigned char dlc;
unsigned char data[8];
unsigned char Flag;
} tCanMsgOject;
extern volatile unsigned char Can_Page;
/* Exported constants --------------------------------------------------------*/
#define CanSavePg() (Can_Page = CAN_FPSR)
#define CanRestorePg() (CAN_FPSR = Can_Page)
/*-- Bit defines -----------------------------------------------------------*/
#define CAN_TXMB0_PG ((unsigned char) 0) /* CAN TX mailbox 0 reg page */
#define CAN_TXMB1_PG ((unsigned char) 1) /* CAN TX mailbox 1 reg page */
#define CAN_FILTER01_PG ((unsigned char) 2) /* CAN Filters 0 & 1 reg page*/
#define CAN_FILTER23_PG ((unsigned char) 3) /* CAN Filters 2 & 3 reg page*/
#define CAN_FILTER45_PG ((unsigned char) 4) /* CAN Filters 4 & 5 reg page*/
#define CAN_TXMB2_PG ((unsigned char) 5) /* CAN TX mailbox 2 reg page */
#define CAN_CTRL_PG ((unsigned char) 6) /* CAN control/status reg page*/
#define CAN_FIFO_PG ((unsigned char) 7) /* CAN FIFO registers page */
#define MCSR_ABRQ ((unsigned char)0x40)
#define MCSR_TXRQ ((unsigned char)0x01)
#define MCSR_RQCP ((unsigned char)0x04)
#define CMCR_TTCN ((unsigned char)0x80)
#define CMCR_ABOM ((unsigned char)0x40)
#define CMCR_AWUM ((unsigned char)0x20)
#define CMCR_NART ((unsigned char)0x10)
#define CMCR_RFLM ((unsigned char)0x08)
#define CMCR_TXFP ((unsigned char)0x04)
#define CMCR_SLEEP ((unsigned char)0x02)
#define CMCR_INRQ ((unsigned char)0x01)
#define CMSR_SLAK ((unsigned char)0x02)
#define CMSR_INAK ((unsigned char)0x01)
#define CMSR_ERRI ((unsigned char)0x04)
#define CMSR_WKUI ((unsigned char)0x08)
#define CMSR_REC ((unsigned char)0x20)
#define CTSR_RQCP0 ((unsigned char)0x01)
#define CTSR_RQCP1 ((unsigned char)0x02)
#define CTSR_RQCP2 ((unsigned char)0x04)
#define CTSR_TXOK0 ((unsigned char)0x10)
#define CTSR_TXOK1 ((unsigned char)0x20)
#define CTPR_TME0 ((unsigned char)0x04)
#define CTPR_TME1 ((unsigned char)0x08)
#define CTPR_TME2 ((unsigned char)0x10)
#define CRFR_RFOM ((unsigned char)0x20)
#define CRFR_FOVR ((unsigned char)0x10)
#define CRFR_FULL ((unsigned char)0x08)
#define CRFR_FMP01 ((unsigned char)0x03)
#define CESR_BOFF ((unsigned char)0x04)
#define CESR_EPVF ((unsigned char)0x02)
#define CESR_EWGF ((unsigned char)0x01)
#define CDGR_RX ((unsigned char)0x08)
#define CDGR_3TX ((unsigned char)0x10)
#define CDGR_LBKM ((unsigned char)0x01)
#define CDGR_SILM ((unsigned char)0x02)
#define CIER_WKUIE 0x80
#define CIER_FOVIE 0x08
#define CIER_FFIE 0x04
#define CIER_FMPIE 0x02
#define CIER_TMEIE 0x01
#define CEIER_ERRIE 0x80
#define CEIER_LECIE 0x10
#define CEIER_BOFIE 0x04
#define CEIER_EPVIE 0x02
#define CEIER_EWGIE 0x01
/* Return Status by the driver function */
#define KCANTXFAILED ((unsigned char) 0x00)
#define KCANTXOK ((unsigned char) 0x01)
/*-- CAN bit timing parameters ------------------------------------------------*/
/* Note: 8 <= total number of TIME QUANTUM (Tq) <= 25 */
/*******************************************************************************
Constant Name: SJW
Description : Resynchronization Jump Width
Value range : from 1 to 4
Comments : The decrease by 1 for register write is made automatically.
*******************************************************************************/
#define CAN_SJW ((unsigned char) 3)
/*******************************************************************************
Constant name: BRP
Description : Baud Rate Prescaler - define length of Tq
Value range : from 1 to 64
Comments : The decrease by 1 for register write is made automatically.
*******************************************************************************/
/* Baud rate = 125 Kbps @ (16 Tq & Fcpu = 8 MHz) */
//#define CAN_BRP ((unsigned char) 8)
/* Baud rate = 100 Kbps @ (16 Tq & Fcpu = 8 MHz) */
#define CAN_BRP ((unsigned char) 10)
/*******************************************************************************
Constant name: TSEG1
Description : Time Segment 1 (+ prop. seg.)
Value range : from 1 to 16
Comments : The decrease by 1 for register write is made automatically.
*******************************************************************************/
#define CAN_TSEG1 ((unsigned char) 4)
/*******************************************************************************
Constant name: TSEG2
Description : Time Segment 2
Value range : from 1 to 8
Comments : The decrease by 1 for register write is made automatically.
*******************************************************************************/
#define CAN_TSEG2 ((unsigned char) 3)
/* CAN BIT TIMING REGISTERS */
#define CAN_CBTR0_REGISTER (unsigned char) ( ((CAN_SJW-1 & 0x03)<<6) | ((CAN_BRP-1) & 0x3f) )
#define CAN_CBTR1_REGISTER (unsigned char) ( ((CAN_TSEG2-1 & 0x07)<<4) | ((CAN_TSEG1-1) & 0x0f) )
/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
extern void CAN_Init (unsigned char);
extern void CAN_WakeUp (void);
extern void CAN_EnableDiagMode (unsigned char);
extern void CAN_DisableDiagMode (void);
extern unsigned char CanMsgTransmit (tCanMsgOject*);
extern void CAN_Sleep (void);
extern void CanCanInterruptDisable (void);
extern void CanCanInterruptRestore (void);
/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -