380091044 发表于 2024-4-11 16:31:47

can通信历程里面有几个点蒙?

pdat = CanReadReg((u8)(RX_BUF0 + (RX_Index++&3)));//这句话搞我有点蒙,谁能解释一下???

//下面这几句也是,看不懂,请哪位老师指点一下???



        if((isr & 0x40) == 0x40)//ALI
        {
                CANAR = ISR;
                CANDR = 0x40;//CLR FLAG
        }

        if((isr & 0x20) == 0x20)//EWI
        {
                CANAR = ISR;
                CANDR = 0x20;//CLR FLAG
        }

        if((isr & 0x10) == 0x10)//EPI
        {
                CANAR = ISR;
                CANDR = 0x10;//CLR FLAG
        }

        if((isr & 0x02) == 0x02)//BEI
        {
                CANAR = ISR;
                CANDR = 0x02;//CLR FLAG
        }

        if((isr & 0x01) == 0x01)//DOI
        {
                CANAR = ISR;
                CANDR = 0x01;//CLR FLAG
        }


电子DIY小家 发表于 2024-4-12 08:27:20

      if((isr & 0x40) == 0x40)//ALI
      {
                CANAR = ISR;
                CANDR = 0x40;//CLR FLAG
      }

这个是读取中断/应答状态寄存器,一旦哪个位出现错误需要手动写1清0。一旦出现对应的错误,可以在程序里写个亮起某个对应的指示灯来帮助定位错误



380091044 发表于 2024-4-12 09:47:37

电子DIY小家 发表于 2024-4-12 08:27
if((isr & 0x40) == 0x40)//ALI
      {
                CANAR = ISR;


感谢老师指点
页: [1]
查看完整版本: can通信历程里面有几个点蒙?