打印

求助!CAN通信只能发送,不能接受~

[复制链接]
1208|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kamfun|  楼主 | 2013-11-2 14:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


/*-------------------------------------------------------------------------------------------------------
CAN中断函数0
作用:用于CAN接受信息
---------------------------------------------------------------------------------------------------------*/
void        SJA1000_INT0(void)        interrupt        0        
{
         uchar Rebuf[13];
         uchar len;
         uchar Data[8],i;
//        HAND=0;   //CAN接收到数据
//        TR0=0;                //先关闭定时器0
     //ET0=0;
         if(ReadSJAReg(REG_CAN_IR)&0x01)                        //产生了接收中断并允许接收
        {
                   ReadSJARegBlock(16,Rebuf,13);        
                   WriteSJAReg(REG_CAN_CMR,RRB_BIT);                //释放SJA1000接收缓冲区
                  len=Rebuf[0]&0x08;//数据长度
                  for(i=0;i<len;i++){
                      Data=Rebuf[5+i];           //第五字节为所需的字节书,前面的都是ID信息帧
                com_sendbyte(Data);
//                    display(Data);          //数据01 显示一号机发送的地址
//                        delay1s();
//                        delay1s();
//                        delay1s();
//                        delay1s();
                 //         SendData(1,8,Data);
                   }                             
      }
//        TR0=1;                //先关闭定时器0
   //  ET0=1;
}

中断函数如上所述,请问大侠们为什么CAN只能发送数据,不能接受数据?这个问题困惑了好久了,希望大神解惑,感激不尽,小弟在此谢过~~

相关帖子

沙发
huangxz| | 2013-11-2 22:54 | 只看该作者
滤波也要设吧,

使用特权

评论回复
板凳
kamfun|  楼主 | 2013-11-4 23:25 | 只看该作者
呵呵,滤波设了

使用特权

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

本版积分规则

5

主题

37

帖子

2

粉丝