打印
[CAN-bus/DeviceNet]

mcp2515 发送和接收配合使用的问题.

[复制链接]
3374|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangdoing|  楼主 | 2010-1-28 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
只发送或者只接收是一点问题没有,但是配合使用会出现mcp2515无响应的时候.
接收采取的是中断方式.

初始化的时候我只使能了接收缓冲器0和1的满中断,为什么在中断里面还会出现其他的中断,比如发送缓冲器空中断??感觉mcp2515的中断不能禁用啊.

01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 00 01 01 01 01 01 80 80 00 01 01 01 01 01 01 05 05 05 01 01 01 01 01 01 01 01 01 01 01 01 05 05 05 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 05 05 05 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 80 80 05 01 01 01 01 01 01 01 01 01 01 01 01 01 80 80 05 01 80 05 01 01 01 01 01 01 01 01 01 01 01 01 80 05 05 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 80 05 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 05 05 05 01 01 01 01 01 01 01 01 01 01 01 01 01 05 05 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 80  
这是在通讯中每次进中断时的寄存器值,另一个设备不停的给mcp2515发,mcp2515也不停的往外发,每次mcp2515没响应的时候,中断寄存器的值肯定是80,但是前面出现过80为什么mcp2515不死?

相关帖子

沙发
yangdoing|  楼主 | 2010-1-30 08:19 | 只看该作者
现在确定不是滚存时出现的问题.


BitModifyRegister(TXB0CTRL,TXB_TXP10_M,TXB_TXP10_M);  //最高的报文发送优先级
McpWriteCan(id,buf,len);                              //发送CAN报文
McpCommand(RTS|TX0RTS);                               //通过MCP2515第0发送缓冲器发送数据

    do
    {
        txb0ctrl = McpRdReg(TXB0CTRL);
    }
    while(txb0ctrl&TXB_TXREQ_M);                      //等待数据帧是否成功发送
我把TXB0CTRL寄存器的值打印出来,正常发送的时候值为0B,一旦出现08就会导致下一次的接收无中断响应,为什么会出现这种问题那??
程序只发送或者只接收是没问题的.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

1

粉丝