huangxz 发表于 2013-5-13 11:52
呵呵,早说嘛,
你看看,最简单的读状态命令也是从第二个字节开始才有SO输出的 //*******************************CAN读数据**************************************
uchar CAN_Read_SS(uchar address)
{
uchar ret;
CANCSUP; //片选拉高
DelayUs(4);
CANCSDW; // 片选拉低,使能MCP2510
DelayUs(4);
SPISendByte(0x03); // 写 0x30读指令
SPISendByte(address); // 写地址
ret = SPIRecvByte(); //读数据
CANCSUP; //片选拉高
return ret;
}
//********************************CAN写数据*************************************
void CAN_Write_SS(uchar address,uchar Value)
{
CANCSUP;
DelayUs(4);
CANCSDW; // 片选拉低,使能MCP2510
DelayUs(4);
SPISendByte(0x02); // 写命令
SPISendByte(address); // 写地址
SPISendByte(Value); // 写数据
CANCSUP; // 片选拉高
DelayUs(5);
}
我是这样的。。。在写指令,写地址,写数据时,CS是一直拉低的。。。读也是一直拉低的。。。
|