我用CAN芯片MCP2515来搞CAN通信。
用51的程序移植到DSP5509上,不成功。
现在读写寄存器都对,发送数据时卡住了。
/*****************************CAN发送**********************/
void CAN_send(unsigned char dat[])
{
mcp2515_setRegisterS(MCP_TXB0CTRL+6,dat,5); //发送数据
mcp2515_setRegister(MCP_TXB0CTRL+5,5); //设置发送的为5个字节
mcp2515_write_can_id(MCP_TXB0SIDH,0,0x00); //写入ID
mcp2515_ModifyRegister(MCP_TXB0CTRL,0x0B,0x0B); //报文发送请求位,最高的报文发送优先级
do //MCU 将此位置1 以请求报文发送-报文发送后该位自动清零
{
res = mcp2515_ReadRegister(MCP_TXB0CTRL);
res = res & 0x08;
}while(res); //等待报文发送完毕
}
卡在//等待报文发送完毕
这个地方。请高手指教,如何解决?谢谢! |