#define CAN_10Kbps 0x31
#define CAN_25Kbps 0x13
#define CAN_50Kbps 0x09
#define CAN_100Kbps 0x04
#define CAN_125Kbps 0x03
#define CAN_250Kbps 0x01
#define CAN_500Kbps 0x00
#define SCK 14
#define SI 12
#define SO 13
#define CS 10 //CE0
#define INTIN 3
#define RST 4
#define TXREQ_M 0b11110111
#define CH 0
#include "MCP2515.h"
#include "bcm2835.h"
#include
#include
#include
#include
//#include
//采用bcm2835spi
void MCP2515_WriteByte(unsigned char addr,unsigned char dat)
{
unsigned char buf = CAN_WRITE;
unsigned char spiDat[] = {CAN_WRITE,addr,dat};
digitalWrite(CS,LOW); //置MCP2515的CS为低电平
bcm2835_spi_transfern(spiDat,3);
digitalWrite(CS,HIGH); //置MCP2515的CS为高电平
}
unsigned char MCP2515_ReadByte(unsigned char addr)
{
unsigned char rByte = 0;
unsigned char spiDat[] = {CAN_READ,addr,0xff};
digitalWrite(CS,LOW); //置MCP2515的CS为低电平
bcm2835_spi_transfern(spiDat,3);
digitalWrite(CS,HIGH); //置MCP2515的CS为高电平
rByte = spiDat[2];
return rByte; //返回读到的一个字节数据
}
void MCP2515_Reset(void)
{
digitalWrite(RST,LOW);
delay(100);
digitalWrite(RST,HIGH);
delay(100);
}
//void IntHandle()