HAL_CAN_AddTxMessage never transmits
I have a simple CAN test where the CAN1 Peripheral on the STM32F446RE board is initialized using STM32CubeMX (Prescaler = 16, TimeSeg1/TimeSeg2/SyncJumpWidth = 1TQ, Mode = Normal, all parameters are DISABLED except for AutoRetransmission = ENABLE). A CAN_TxHeaderTypeDef struct is created (StdId is within the range of 0-0x7FF, ExtId = 0, IDE = CAN_ID_STD, DLC = 8, RTR = CAN_RTR_DATA, TransmitGlobalTime is DISABLED) called module. a buffer is created that just holds [0, 1, 2, 3, 4, 5, 6, 7] (8 bytes). hcan1 is initialized and started using MX_CAN1_Init and HAL_CAN_Start. Then it loops over
HAL_CAN_AddTxMessage(&hcan1, &module, buffer1, (uint32_t*)CAN_TX_MAILBOX0);
while(HAL_CAN_GetTxMailboxesFreeLevel(&hcan1) == 0U);It passes over those 3 times and on the third time, it hangs in the while since the mailboxes never get cleared. I'm really not sure what I should do instead to fix this.
EDIT: PROBLEM IS FIXED
There was an update where the HAL Cube RetransmissionDisable field stayed as named but is actually Enable in the new code implementation. Changing that field results in the mailboxes no longer holding on to messages.