Skip to content

Commit 6598e32

Browse files
authored
Merge pull request #3405 from samos2011/stm32f1_can_bug
Repair the transmit mailbox (0,1,2) empty interrupt flag not clear BUG
2 parents 6e7ee0e + d4c18b0 commit 6598e32

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

targets/TARGET_STM/TARGET_STM32F1/can_api.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,15 @@ static void can_irq(CANName name, int id)
377377
tmp1 = __HAL_CAN_TRANSMIT_STATUS(&CanHandle, CAN_TXMAILBOX_0);
378378
tmp2 = __HAL_CAN_TRANSMIT_STATUS(&CanHandle, CAN_TXMAILBOX_1);
379379
tmp3 = __HAL_CAN_TRANSMIT_STATUS(&CanHandle, CAN_TXMAILBOX_2);
380+
if (tmp1){
381+
__HAL_CAN_CLEAR_FLAG(&CanHandle, CAN_FLAG_RQCP0);
382+
}
383+
if (tmp2){
384+
__HAL_CAN_CLEAR_FLAG(&CanHandle, CAN_FLAG_RQCP1);
385+
}
386+
if (tmp3){
387+
__HAL_CAN_CLEAR_FLAG(&CanHandle, CAN_FLAG_RQCP2);
388+
}
380389
if(tmp1 || tmp2 || tmp3)
381390
{
382391
irq_handler(can_irq_ids[id], IRQ_TX);

targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_can.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -572,9 +572,9 @@ typedef struct
572572
* @param __HANDLE__: specifies the CAN Handle.
573573
* @param __FLAG__: specifies the flag to check.
574574
* This parameter can be one of the following values:
575-
* @arg CAN_TSR_RQCP0: Request MailBox0 Flag
576-
* @arg CAN_TSR_RQCP1: Request MailBox1 Flag
577-
* @arg CAN_TSR_RQCP2: Request MailBox2 Flag
575+
* @arg CAN_FLAG_RQCP0: Request MailBox0 Flag
576+
* @arg CAN_FLAG_RQCP1: Request MailBox1 Flag
577+
* @arg CAN_FLAG_RQCP2: Request MailBox2 Flag
578578
* @arg CAN_FLAG_TXOK0: Transmission OK MailBox0 Flag
579579
* @arg CAN_FLAG_TXOK1: Transmission OK MailBox1 Flag
580580
* @arg CAN_FLAG_TXOK2: Transmission OK MailBox2 Flag
@@ -606,9 +606,9 @@ typedef struct
606606
* @param __HANDLE__: specifies the CAN Handle.
607607
* @param __FLAG__: specifies the flag to check.
608608
* This parameter can be one of the following values:
609-
* @arg CAN_TSR_RQCP0: Request MailBox0 Flag
610-
* @arg CAN_TSR_RQCP1: Request MailBox1 Flag
611-
* @arg CAN_TSR_RQCP2: Request MailBox2 Flag
609+
* @arg CAN_FLAG_RQCP0: Request MailBox0 Flag
610+
* @arg CAN_FLAG_RQCP1: Request MailBox1 Flag
611+
* @arg CAN_FLAG_RQCP2: Request MailBox2 Flag
612612
* @arg CAN_FLAG_TXOK0: Transmission OK MailBox0 Flag
613613
* @arg CAN_FLAG_TXOK1: Transmission OK MailBox1 Flag
614614
* @arg CAN_FLAG_TXOK2: Transmission OK MailBox2 Flag

0 commit comments

Comments
 (0)