/* 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)发送的还是我接收端那边负责发送呢?
或者存在什么其他的问题?
拜托各位!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>