diff --git a/lib/stm32/f1/can.c b/lib/stm32/f1/can.c index 9bd23cb3..2131fd1e 100644 --- a/lib/stm32/f1/can.c +++ b/lib/stm32/f1/can.c @@ -313,3 +313,16 @@ void can_receive(u32 canport, u8 fifo, bool release, u32 *id, bool *ext, if (release) can_fifo_release(CAN1, 0); } + +bool can_available_mailbox(u32 canport) +{ + if ((CAN_TSR(canport) & CAN_TSR_TME0) == CAN_TSR_TME0) { + return true; + } else if ((CAN_TSR(canport) & CAN_TSR_TME1) == CAN_TSR_TME1) { + return true; + } else if ((CAN_TSR(canport) & CAN_TSR_TME2) == CAN_TSR_TME2) { + return true; + } else { + return false; + } +}