diff --git a/targets/TARGET_STM/TARGET_STM32F0/can_api.c b/targets/TARGET_STM/TARGET_STM32F0/can_api.c index d8938fca7d..0f93832791 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32F0/can_api.c @@ -267,10 +267,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if (handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1; diff --git a/targets/TARGET_STM/TARGET_STM32F1/can_api.c b/targets/TARGET_STM/TARGET_STM32F1/can_api.c index 2b16c47953..cbcc9ca636 100644 --- a/targets/TARGET_STM/TARGET_STM32F1/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32F1/can_api.c @@ -270,10 +270,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if(handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1; diff --git a/targets/TARGET_STM/TARGET_STM32F2/can_api.c b/targets/TARGET_STM/TARGET_STM32F2/can_api.c index e1097e2d2b..d20e24011b 100644 --- a/targets/TARGET_STM/TARGET_STM32F2/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32F2/can_api.c @@ -280,10 +280,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if (handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1; diff --git a/targets/TARGET_STM/TARGET_STM32F3/can_api.c b/targets/TARGET_STM/TARGET_STM32F3/can_api.c index 7bccf28639..15309dd170 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32F3/can_api.c @@ -270,10 +270,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if(handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1; diff --git a/targets/TARGET_STM/TARGET_STM32F4/can_api.c b/targets/TARGET_STM/TARGET_STM32F4/can_api.c index 1bad14ac5d..dbadf01597 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32F4/can_api.c @@ -283,10 +283,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if(handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1; diff --git a/targets/TARGET_STM/TARGET_STM32F7/can_api.c b/targets/TARGET_STM/TARGET_STM32F7/can_api.c index 7c4cac4010..73ddf859e5 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32F7/can_api.c @@ -283,10 +283,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if(handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1; diff --git a/targets/TARGET_STM/TARGET_STM32L4/can_api.c b/targets/TARGET_STM/TARGET_STM32L4/can_api.c index 363cfe245f..bf6ad70949 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/can_api.c +++ b/targets/TARGET_STM/TARGET_STM32L4/can_api.c @@ -270,10 +270,10 @@ int can_read(can_t *obj, CAN_Message *msg, int handle) /* Release the FIFO */ if(handle == CAN_FIFO0) { /* Release FIFO0 */ - can->RF0R = CAN_RF0R_RFOM0; + can->RF0R |= CAN_RF0R_RFOM0; } else { /* FIFONumber == CAN_FIFO1 */ /* Release FIFO1 */ - can->RF1R = CAN_RF1R_RFOM1; + can->RF1R |= CAN_RF1R_RFOM1; } return 1;