您可以尝试用 ESR1[RX] 这个寄存器去判断 CAN 总线上是否有报文。休眠前 while 循环获取 ESR1[RX],如果出现 ESR1[RX] 为 1 情况就代表总线上有 CAN 报文,然后退出休眠逻辑,只有在一段时间内循环获取 ESR1[RX] 都为 0 的时候,表示 CAN 总线上无报文,可以执行休眠逻辑
您可以尝试用 ESR1[RX] 这个寄存器去判断 CAN 总线上是否有报文。休眠前 while 循环获取 ESR1[RX],如果出现 ESR1[RX] 为 1 情况就代表总线上有 CAN 报文,然后退出休眠逻辑,只有在一段时间内循环获取 ESR1[RX] 都为 0 的时候,表示 CAN 总线上无报文,可以执行休眠逻辑