📄 lpc2000_can.h
字号:
/****************************************************************************
* FILENAME: LPC2000_CAN.h *
* *
* VERSION: V1.0 *
* *
* DESCRIPTION: Header File for CAN Driver LPC2300_CAN_Driver.c *
* *
* TOOLS: KEIL uVision3 *
* *
* *
* REVISION HISTORY: *
* Version Author Date Remarks *
* 1.0 Anthony Xie 10/10/2005 - - *
*****************************************************************************/
/**
* @file
* CAN Controller Driver Header File
*/
#ifndef LPC2000CANDRIVER_H
#define LPC2000CANDRIVER_H
/*****************************************************************************/
/* Standard include files */
/*****************************************************************************/
/*****************************************************************************/
/* Project include files */
/*****************************************************************************/
#include "LPC2000_CAN_GAF.h"
/*****************************************************************************/
/* Types */
/*****************************************************************************/
/**
* Data structure for a CAN message to be transmitted
*/
typedef struct
{
UInt32 TFI; //0x8xxxxxxx for 29bits length ID, 0x0xxxxxxx for 11 bits
UInt32 ID;
UInt32 DataField[2];
} lpc2000CANdriver_TXObj_t, *plpc2000CANdriver_TXObj_t;
/**
* Data structure for a CAN message to be received
*/
typedef struct
{
unsigned char FULLCALmsg;
UInt32 RFS;
UInt32 ID;
UInt32 DataField[2];
} lpc2000CANdriver_RXObj_t, *plpc2000CANdriver_RXObj_t;
/*****************************************************************************/
/* Defines */
/*****************************************************************************/
/**
* Definition of return values
*/
#define LPC2000_CANDRIVER_INITIAL 0
#define LPC2000_CANDRIVER_OK 5
#define LPC2000_CANDRIVER_ERR 10
#define LPC2000_CANDRIVER_ERR_WRONG_CAN_CHANNEL_NUMBER 30
#define LPC2000_CANDRIVER_ERR_WRONG_CAN_TxBUFFER_NUMBER 31
#define LPC2000_CANDRIVER_ERR_TRANSMIT_BUFFER1_NOT_FREE 40
#define LPC2000_CANDRIVER_ERR_TRANSMIT_BUFFER2_NOT_FREE 50
#define LPC2000_CANDRIVER_ERR_TRANSMIT_BUFFER3_NOT_FREE 60
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_STD_FULLCAN_SECTION 80
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_STD_INDIVIDUAL_SECTION 90
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_STD_GROUP_SECTION 100
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_EXT_INDIVIDUAL_SECTION 110
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_EXT_GROUP_SECTION 120
#define LPC2000_CANDRIVER_ERR_NOT_ENOUGH_MEMORY_SPACE 130
/**
* Bit Timing Values for 16MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE250K12MHZ 0x0001C002
/**
* Bit Timing Values for 16MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE100K16MHZ 0x001C0009
#define LPC2000_CANDRIVER_CANBITRATE125K16MHZ 0x001C0007
#define LPC2000_CANDRIVER_CANBITRATE250K16MHZ 0x001C0003
#define LPC2000_CANDRIVER_CANBITRATE500K16MHZ 0x001C0001
#define LPC2000_CANDRIVER_CANBITRATE1000K16MHZ 0x001C0000
/**
* Bit Timing Values for 20MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE100K20MHZ 0x00140018
#define LPC2000_CANDRIVER_CANBITRATE125K20MHZ 0x002B0009
#define LPC2000_CANDRIVER_CANBITRATE250K20MHZ 0x002B0004
#define LPC2000_CANDRIVER_CANBITRATE500K20MHZ 0x00140004
#define LPC2000_CANDRIVER_CANBITRATE1000K20MHZ 0x00250001
/**
* Bit Timing Values for 24MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE33K24MHZ 0x001C002C
#define LPC2000_CANDRIVER_CANBITRATE83K24MHZ 0x001C0011
#define LPC2000_CANDRIVER_CANBITRATE100K24MHZ 0x001C000E
#define LPC2000_CANDRIVER_CANBITRATE125K24MHZ 0x001C000B
#define LPC2000_CANDRIVER_CANBITRATE250K24MHZ 0x001C0005
#define LPC2000_CANDRIVER_CANBITRATE500K24MHZ 0x001C0002
#define LPC2000_CANDRIVER_CANBITRATE1000K24MHZ 0x00180001
/**
* Bit Timing Values for 48MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE100K48MHZ 0x002B001D
#define LPC2000_CANDRIVER_CANBITRATE125K48MHZ 0x002B0017
#define LPC2000_CANDRIVER_CANBITRATE250K48MHZ 0x002B000B
#define LPC2000_CANDRIVER_CANBITRATE500K48MHZ 0x002B0005
#define LPC2000_CANDRIVER_CANBITRATE1000K48MHZ 0x002B0002
/**
* Bit Timing Values for 60MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE100K60MHZ 0x00180031
#define LPC2000_CANDRIVER_CANBITRATE125K60MHZ 0x00180027
#define LPC2000_CANDRIVER_CANBITRATE250K60MHZ 0x00180013
#define LPC2000_CANDRIVER_CANBITRATE500K60MHZ 0x00180009
#define LPC2000_CANDRIVER_CANBITRATE1000K60MHZ 0x00180004
/**
* Pre-defined CAN channel identifier
*/
#define LPC2000_CANCHANNEL_1 0x01
#define LPC2000_CANCHANNEL_2 0x02
#define LPC2000_CANCHANNEL_3 0x03
#define LPC2000_CANCHANNEL_4 0x04
/**
* Pre-defined transmit buffer identifier
*/
#define LPC2000_TXB_1 0x01
#define LPC2000_TXB_2 0x02
#define LPC2000_TXB_3 0x03
/**
* Pre-defined Acceptance filter modes
*/
#define LPC2000_ACC_ON 0x00
#define LPC2000_ACC_OFF 0x01
#define LPC2000_ACC_BYPASS 0x03
#define LPC2000_ACCF_FULLCAN 0x04
/**
* Pre-defined CAN controller operating modes
*/
#define CAN_RESET_MODE 0x01
#define CAN_OPERATING_MODE 0x00
#define CAN_LISTENONLY_MODE 0x02
#define CAN_SELFTEST_MODE 0x04
/*****************************************************************************/
/* External Global Variables */
/*****************************************************************************/
extern lpc2000CANdriver_TXObj_t CAN_Send_Data[];
extern lpc2000CANdriver_RXObj_t CAN_Rcv_Data[];
extern const lpc2000CANdriver_ACFilter_t gklpc2000CANdriver_StdFULLCAN_Section[];
extern const lpc2000CANdriver_ACFilter_t gklpc2000CANdriver_StdIndividualSection[];
extern const lpc2000CANdriver_ACFilter_t gklpc2000CANdriver_StdGroupSection[];
extern const lpc2000CANdriver_ACFilterx_t gklpc2000CANdriver_ExtIndividualSection[];
extern const lpc2000CANdriver_ACFilterx_t gklpc2000CANdriver_ExtGroupSection[];
extern UInt32 CAN1Tx_Return_Message[5];
extern UInt32 CAN2Rx_Return_Message_Flag[10];
extern UInt8 CAN_Rcv_Data_Counter;
extern CanStatusCode Return_Value;
extern CanStatusCode CAN_Rcv_Status;
extern const UInt8 LiuJiaju_Send[];
extern const UInt8 LiuJiaju_Send1[];
extern const UInt8 LiuJiaju_IRQ[];
extern const UInt8 LiuJiaju_FULLCAN_Rec[];
extern const UInt8 LiuJiaju_AF_Rec[];
extern const UInt8 LiuJiaju_FULLCAN_Rec_complete[];
extern const UInt8 LiuJiaju_AF_Rec_complete[];
extern const UInt8 CAN_Error_10[];
extern const UInt8 CAN_Error_30[];
extern const UInt8 CAN_Error_31[];
extern const UInt8 CAN_Error_40[];
extern const UInt8 CAN_Error_50[];
extern const UInt8 CAN_Error_60[];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -