CAN的MSR寄存器的INAK位无法跳转到0

2019-07-21 04:14发布

    /* Request leave initialisation */
    CANx->MCR &= ~(uint32_t)CAN_MCR_INRQ;

   /* Wait the acknowledge */
   wait_ack = 0;

   while (((CANx->MSR & CAN_MSR_INAK) == CAN_MSR_INAK) && (wait_ack != INAK_TIMEOUT))
   {
     wait_ack++;
   }


在这一步的时候wait_ack总是超时,然后无法跳转。
手册上说:“硬件需要在CAN的RX引脚上检测到连续的11 位隐性位。”然后硬件自己跳转。
很奇怪这11位隐性位是收发器(我用的是AU5790)发送的还是我接收端那边负责发送呢?
或者存在什么其他的问题?
拜托各位!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。