📄 canbus.h
字号:
#ifndef __CANBUS__
#define __CANBUS__
#define U32 unsigned int
#define U16 unsigned short
#define S32 int
#define S16 short int
#define U8 unsigned char
#define S8 char
#define rGPEDAT (*(volatile unsigned *)0xB1600044)
#define rGPECON (*(volatile unsigned *)0xB1600040)
#define rGPEUP (*(volatile unsigned *)0xB1600048)
#define rGPGCON (*(volatile unsigned *)0xB1600060)
#define rGPGDAT (*(volatile unsigned *)0xB1600064)
/****************************************************************************
MCP2510_CS GPG2 output ( nSS0 )
MCP2510_SI GPE12 output ( SPIMOSI0 )
MCP2510_SO GPE11 input ( SPIMISO0 )
MCP2510_SCK GPE13 output ( SPICLK0 )
MCP2510_INT GPG0 input ( EINT8 )
****************************************************************************/
#define MCP2510_DEBUG 1
#define DELAY_TIME 500
#define MCP2510_CS_OUT ( rGPGCON = rGPGCON & (~(3<<4)) | (1<<4) ) //GPG2
#define MCP2510_CS_H ( rGPGDAT = rGPGDAT | (1<<2) )
#define MCP2510_CS_L ( rGPGDAT = rGPGDAT & (~(1<<2)) )
#define MCP2510_SI_OUT ( rGPECON = rGPECON & (~(3<<24)) | (1<<24) ) //GPE12
#define MCP2510_SI_H ( rGPEDAT = rGPEDAT | (1<<12) )
#define MCP2510_SI_L ( rGPEDAT = rGPEDAT & (~(1<<12)) )
#define MCP2510_SCK_OUT ( rGPECON = rGPECON & (~(3<<26)) | (1<<26) ) //GPE13
#define MCP2510_SCK_H ( rGPEDAT = rGPEDAT | (1<<13) )
#define MCP2510_SCK_L ( rGPEDAT = rGPEDAT & (~(1<<13)) )
#define MCP2510_SO_IN ( rGPECON = rGPECON & (~(3<<22)) | (0<<22) ) //GPE11
#define MCP2510_SO_GET ( rGPEDAT & (1<<11) )
#define MCP2510_SO_PULLUP ( rGPEUP = rGPEUP & (~(1<<11)) )
#define MCP2510_SO_DISPULLUP ( rGPEUP = rGPEUP | (1<<11) )
#define MCP2510_INT_IN ( rGPGCON = rGPGCON & (~(3<<0)) ) //GPG0
#define MCP2510_INT_GET ( rGPGDAT & 0x01 )
/********************** MCP2510 Instruction *********************************/
#define MCP2510INSTR_RESET 0xc0 //复位为缺省状态,并设定为配置模式
#define MCP2510INSTR_READ 0x03 //从寄存器中读出数据
#define MCP2510INSTR_WRITE 0x02 //向寄存器写入数据
#define MCP2510INSTR_RTS 0x80 //启动一个或多个发送缓冲器的报文发送
#define MCP2510INSTR_RDSTAT 0xa0 //读取状态
#define MCP2510INSTR_BITMDFY 0x05 //位修改
//***************************************************************************
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -