while (hcan->Instance->MSR & CAN_MSR_INAK) != CAN_MSR_INAK)
答案 0 :(得分:-1)
这是检查标志或更精确的常用方法 - 如果在某个寄存器中设置了位。在这个特定的例子中:
INAK:初始化确认该位由硬件和设置 向软件表明CAN硬件现在在 初始化模式。
所以你基本上在无限循环中等待,直到CAN进入初始化模式。
顺便说一句。我认为你的CAN配置中有很多结构。如果您使用CMSIS宏包,它应如下所示:
while((CAN->MSR & CAN_MSR_INAK) == 0);