📄 mcp2510.h
字号:
// --00 = Lowest Message Priority
#define TXREQ (0x08) // Message Transmit Request
// --1 = Buffer is currently pending transmission
// --(MCU sets this bit to request message be transmitted -
// -- bit is automatically cleared when the message is sent)
// --0 = Buffer is not currently pending transmission
// --(MCU can clear this bit to request a message abort)
#define TXERR (0x10) // Transmission Error Detected
// --1 = A bus error occurred while the message was being transmitted
// --0 = No bus error occurred while the message was being transmitted
#define MLOA (0x20) // Message Lost Arbitration
// --1 = Message lost arbitration while being sent
// --0 = Message did not lose arbitration while being sent
#define ABTF (0x40) // Message Aborted Flag
// --1 = Message was aborted
// --0 = Message completed transmission successfully
#define TXB0SIDH (0x31) /*** TRANSMIT BUFFER 0 STANDARD IDENTIFIER HIGH ***/
#define TXB0SIDL (0x32) /*** TRANSMIT BUFFER 0 STANDARD IDENTIFIER Low ***/
#define TXB0EID8 (0x33) /*** TRANSMIT BUFFER 0 EXTENDED IDENTIFIER HIGH ***/
#define TXB0EID0 (0x34) /*** TRANSMIT BUFFER 0 EXTENDED IDENTIFIER LOW ***/
#define TXB0DLC (0x35) /*** Transmit Buffer 0 Data Length Code ***/
#define TXB0D0 (0x36) /*** Transmit Buffer 0 Data Field Byte 0 ***/
#define TXB0D1 (0x37)
#define TXB0D2 (0x38)
#define TXB0D3 (0x39)
#define TXB0D4 (0x3A)
#define TXB0D5 (0x3B)
#define TXB0D6 (0x3C)
#define TXB0D7 (0x3D)
/*******************************Transmit BUFFER 1 REGISTERS******************************************************/
#define TXB1CTRL (0x40) /*** Transmit Buffer 0 Control Register ***/
#define TXB1SIDH (0x41) /*** TRANSMIT BUFFER 1 STANDARD IDENTIFIER HIGH ***/
#define TXB1SIDL (0x42) /*** TRANSMIT BUFFER 1 STANDARD IDENTIFIER Low ***/
#define TXB1EID8 (0x43) /*** TRANSMIT BUFFER 1 EXTENDED IDENTIFIER HIGH ***/
#define TXB1EID0 (0x44) /*** TRANSMIT BUFFER 1 EXTENDED IDENTIFIER LOW ***/
#define TXB1DLC (0x45) /*** Transmit Buffer 1 Data Length Code ***/
#define TXB1D0 (0x46) /*** Transmit Buffer 1 Data Field Byte 0 ***/
#define TXB1D1 (0x47)
#define TXB1D2 (0x48)
#define TXB1D3 (0x49)
#define TXB1D4 (0x4A)
#define TXB1D5 (0x4B)
#define TXB1D6 (0x4C)
#define TXB1D7 (0x4D)
/*******************************Transmit BUFFER 2 REGISTERS******************************************************/
#define TXB2CTRL (0x50) /*** Transmit Buffer 0 Control Register ***/
#define TXB2SIDH (0x51) /*** TRANSMIT BUFFER 2 STANDARD IDENTIFIER HIGH ***/
#define TXB2SIDL (0x52) /*** TRANSMIT BUFFER 2 STANDARD IDENTIFIER Low ***/
#define TXB2EID8 (0x53) /*** TRANSMIT BUFFER 2 EXTENDED IDENTIFIER HIGH ***/
#define TXB2EID0 (0x54) /*** TRANSMIT BUFFER 2 EXTENDED IDENTIFIER LOW ***/
#define TXB2DLC (0x55) /*** Transmit Buffer 2 Data Length Code ***/
#define TXB2D0 (0x56) /*** Transmit Buffer 2 Data Field Byte 0 ***/
#define TXB2D1 (0x57)
#define TXB2D2 (0x58)
#define TXB2D3 (0x59)
#define TXB2D4 (0x5A)
#define TXB2D5 (0x5B)
#define TXB2D6 (0x5C)
#define TXB2D7 (0x5D)
#define DLC_MASK (0x0F)
/*******************************RECEIVE BUFFER 0 REGISTERS******************************************************/
#define RXB0CTRL (0x60) /*** RECEIVE BUFFER 0 CONTROL REGISTER ***/
#define FILHIT0 (0x01) // FILHIT<0>: Filter Hit - indicates which acceptance filter enabled reception of message
// --1 = Acceptance Filter 1 (RXF1)
// --0 = Acceptance Filter 0 (RXF0)
#define BUKT1 (0x02) // Read Only Copy of BUKT Bit (used internally by the MCP2510).
#define BUKT (0x04) // Rollover Enable
// --1 = RXB0 message will rollover and be written to RXB1 if RXB0 is full
// --0 = Rollover disabled
#define RXRTR (0x08) // Received Remote Transfer Request:1 = Remote Transfer Request Received
// --0 = No Remote Transfer Request Received
#define RXM0 (0x20) // RXM<1:0>: Receive Buffer Operating Mode
#define RXM1 (0x40) // --11 =Turn mask/filters off; receive any message
// --10 =Receive only valid messages with extended identifiers that meet filter criteria
// --01 =Receive only valid messages with standard identifiers that meet filter criteria
// --00 =Receive all valid messages using either standard or extended identifiers that meet filter
// --criteria
#define RXB0SIDH (0x61) /*** RECEIVE BUFFER 0 STANDARD IDENTIFIER HIGH ***/
#define RXB0SIDL (0x62) /*** RECEIVE BUFFER 0 STANDARD IDENTIFIER LOW ***/
#define RXB0EID8 (0x63) /*** RECEIVE BUFFER 0 EXTENDED IDENTIFIER MID ***/
#define RXB0EID0 (0x64) /*** RECEIVE BUFFER 0 EXTENDED IDENTIFIER LOW ***/
#define RXB0DLC (0x65) /*** RECEIVE BUFFER 0 DATA LENGTH CODE ***/
#define RXB0D0 (0x66) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 0 ***/
#define RXB0D1 (0x67) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 1 ***/
#define RXB0D2 (0x68) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 2 ***/
#define RXB0D3 (0x69) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 3 ***/
#define RXB0D4 (0x6A) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 4 ***/
#define RXB0D5 (0x6B) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 5 ***/
#define RXB0D6 (0x6C) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 6 ***/
#define RXB0D7 (0x6D) /*** RECEIVE BUFFER 0 DATA FIELD BYTE 7 ***/
/*******************************RECEIVE BUFFER 1 REGISTERS******************************************************/
#define RXB1CTRL (0x70) /*** RECEIVE BUFFER 1 CONTROL REGISTER ***/
#define FILHIT1 (0x02) // Filter Hit - indicates which acceptance filter enabled reception of message
#define FILHIT2 (0x04) // 101 = Acceptance Filter 5 (RXF5)
// 100 = Acceptance Filter 4 (RXF4)
// 011 = Acceptance Filter 3 (RXF3)
// 010 = Acceptance Filter 2 (RXF2)
// 001 = Acceptance Filter 1 (RXF1) (Only if BUKT bit set in RXB0CTRL)
// 000 = Acceptance Filter 0 (RXF0) (Only if BUKT bit set in RXB0CTRL)
#define RXB1SIDH (0x71) /*** RECEIVE BUFFER 1 STANDARD IDENTIFIER HIGH ***/
#define RXB1SIDL (0x72) /*** RECEIVE BUFFER 1 STANDARD IDENTIFIER LOW ***/
#define RXB1EID8 (0x73) /*** RECEIVE BUFFER 1 EXTENDED IDENTIFIER MID ***/
#define RXB1EID0 (0x74) /*** RECEIVE BUFFER 1 EXTENDED IDENTIFIER LOW ***/
#define RXB1DLC (0x75) /*** RECEIVE BUFFER 1 DATA LENGTH CODE ***/
#define RXB1D0 (0x76) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 0 ***/
#define RXB1D1 (0x77) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 1 ***/
#define RXB1D2 (0x78) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 2 ***/
#define RXB1D3 (0x79) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 3 ***/
#define RXB1D4 (0x7A) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 4 ***/
#define RXB1D5 (0x7B) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 5 ***/
#define RXB1D6 (0x7C) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 6 ***/
#define RXB1D7 (0x7D) /*** RECEIVE BUFFER 1 DATA FIELD BYTE 7 ***/
#define SIDH 0
#define SIDL 1
#define EID8 2
#define EID0 3
#define RXF0SIDH (0x00) /*** ACCEPTANCE FILTER 0 STANDARD IDENTIFIER HIGH ***/
#define RXF0SIDL (0x01) /*** ACCEPTANCE FILTER 0 STANDARD IDENTIFIER LOW ***/
#define RXF0EID8 (0x02) /*** ACCEPTANCE FILTER 0 EXTENDED IDENTIFIER HIGH ***/
#define RXF0EID0 (0x03) /*** ACCEPTANCE FILTER 0 EXTENDED IDENTIFIER LOW ***/
#define RXF1SIDH (0x04) /*** ACCEPTANCE FILTER 1 STANDARD IDENTIFIER HIGH ***/
#define RXF1SIDL (0x05) /*** ACCEPTANCE FILTER 1 STANDARD IDENTIFIER LOW ***/
#define RXF1EID8 (0x06) /*** ACCEPTANCE FILTER 1 EXTENDED IDENTIFIER HIGH ***/
#define RXF1EID0 (0x07) /*** ACCEPTANCE FILTER 1 EXTENDED IDENTIFIER LOW ***/
#define RXF2SIDH (0x08) /*** ACCEPTANCE FILTER 2 STANDARD IDENTIFIER HIGH ***/
#define RXF2SIDL (0x09) /*** ACCEPTANCE FILTER 2 STANDARD IDENTIFIER LOW ***/
#define RXF2EID8 (0x0A) /*** ACCEPTANCE FILTER 2 EXTENDED IDENTIFIER HIGH ***/
#define RXF2EID0 (0x0B) /*** ACCEPTANCE FILTER 2 EXTENDED IDENTIFIER LOW ***/
#define RXF3SIDH (0x10) /*** ACCEPTANCE FILTER 3 STANDARD IDENTIFIER HIGH ***/
#define RXF3SIDL (0x11) /*** ACCEPTANCE FILTER 3 STANDARD IDENTIFIER LOW ***/
#define RXF3EID8 (0x12) /*** ACCEPTANCE FILTER 3 EXTENDED IDENTIFIER HIGH ***/
#define RXF3EID0 (0x13) /*** ACCEPTANCE FILTER 3 EXTENDED IDENTIFIER LOW ***/
#define RXF4SIDH (0x14) /*** ACCEPTANCE FILTER 4 STANDARD IDENTIFIER HIGH ***/
#define RXF4SIDL (0x15) /*** ACCEPTANCE FILTER 4 STANDARD IDENTIFIER LOW ***/
#define RXF4EID8 (0x16) /*** ACCEPTANCE FILTER 4 EXTENDED IDENTIFIER HIGH ***/
#define RXF4EID0 (0x17) /*** ACCEPTANCE FILTER 4 EXTENDED IDENTIFIER LOW ***/
#define RXF5SIDH (0x18) /*** ACCEPTANCE FILTER 5 STANDARD IDENTIFIER HIGH ***/
#define RXF5SIDL (0x19) /*** ACCEPTANCE FILTER 5 STANDARD IDENTIFIER LOW ***/
#define RXF5EID8 (0x1A) /*** ACCEPTANCE FILTER 5 EXTENDED IDENTIFIER HIGH ***/
#define RXF5EID0 (0x1B) /*** ACCEPTANCE FILTER 5 EXTENDED IDENTIFIER LOW ***/
#define RXM0SIDH (0x20) /*** ACCEPTANCE FILTER MASK 0 STANDARD IDENTIFIER HIGH ***/
#define RXM0SIDL (0x21) /*** ACCEPTANCE FILTER MASK 0 STANDARD IDENTIFIER LOW ***/
#define RXM0EID8 (0x22) /*** ACCEPTANCE FILTER MASK 0 EXTENDED IDENTIFIER HIGH ***/
#define RXM0EID0 (0x23) /*** ACCEPTANCE FILTER MASK 0 EXTENDED IDENTIFIER LOW ***/
#define RXM1SIDH (0x24) /*** ACCEPTANCE FILTER MASK 1 STANDARD IDENTIFIER HIGH ***/
#define RXM1SIDL (0x25) /*** ACCEPTANCE FILTER MASK 1 STANDARD IDENTIFIER LOW ***/
#define RXM1EID8 (0x26) /*** ACCEPTANCE FILTER MASK 1 EXTENDED IDENTIFIER HIGH ***/
#define RXM1EID0 (0x27) /*** ACCEPTANCE FILTER MASK 1 EXTENDED IDENTIFIER LOW ***/
uchar Get_CAN_address(void);
uchar SPI_putch(uchar outdata);
void mcp_select( void );
void mcp_select( void );
void mcp_unselect(void );
void mcp_reset( void );
uchar mcp_RD_address(uchar address);
uchar mcp_RD_status(void);
void mcp_WR_address(uchar address,uchar output);
void mcp_write_bits(uchar address,uchar mask,uchar data);
void mcp_RTS(uchar TXnumber);
void mcp_read( uchar address, uchar* readdata, uchar length );
void mcp_write( uchar address, uchar* writedata, uchar length );
void mcp_read_can( uchar RXnumber,uchar* data );
void mcp_write_can( uchar TXnumber,uchar number,uchar dlc,uchar* data );
void init_can(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -