微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助!CAN通信只能发送,不能接收

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

时间:10-02 整理:3721RD 点击:
/*-------------------------------------------------------------------------------------------------------
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[i]=Rebuf[5+i];           //第五字节为所需的字节书,前面的都是ID信息帧
                com_sendbyte(Data[i]);
//                    display(Data[i]);          //数据01 显示一号机发送的地址
//                        delay1s();
//                        delay1s();
//                        delay1s();
//                        delay1s();
                 //         SendData(1,8,Data);
                   }                             
      }
//        TR0=1;                //先关闭定时器0
   //  ET0=1;
}
中断函数如上所述,请问大侠们为什么CAN只能发送数据,不能接受数据?这个问题困惑了好久了,希望大神解惑,感激不尽,小弟在此谢过~~



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top