⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 canbus.h

📁 s3c2440在wince5.0下的CAN总线驱动
💻 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 + -