diff options
| -rw-r--r-- | embassy-stm32/src/can/bxcan/mod.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/embassy-stm32/src/can/bxcan/mod.rs b/embassy-stm32/src/can/bxcan/mod.rs index baa4bee79..19f1cea29 100644 --- a/embassy-stm32/src/can/bxcan/mod.rs +++ b/embassy-stm32/src/can/bxcan/mod.rs | |||
| @@ -893,7 +893,7 @@ impl RxMode { | |||
| 893 | RxFifo::Fifo0 => 0usize, | 893 | RxFifo::Fifo0 => 0usize, |
| 894 | RxFifo::Fifo1 => 1usize, | 894 | RxFifo::Fifo1 => 1usize, |
| 895 | }; | 895 | }; |
| 896 | T::regs().ier().write(|w| { | 896 | T::regs().ier().modify(|w| { |
| 897 | w.set_fmpie(fifo_idx, false); | 897 | w.set_fmpie(fifo_idx, false); |
| 898 | }); | 898 | }); |
| 899 | waker.wake(); | 899 | waker.wake(); |
| @@ -936,18 +936,22 @@ impl RxMode { | |||
| 936 | Self::NonBuffered(_) => { | 936 | Self::NonBuffered(_) => { |
| 937 | let registers = &info.regs; | 937 | let registers = &info.regs; |
| 938 | if let Some(msg) = registers.receive_fifo(RxFifo::Fifo0) { | 938 | if let Some(msg) = registers.receive_fifo(RxFifo::Fifo0) { |
| 939 | registers.0.ier().write(|w| { | 939 | registers.0.ier().modify(|w| { |
| 940 | w.set_fmpie(0, true); | 940 | w.set_fmpie(0, true); |
| 941 | }); | 941 | }); |
| 942 | Ok(msg) | 942 | Ok(msg) |
| 943 | } else if let Some(msg) = registers.receive_fifo(RxFifo::Fifo1) { | 943 | } else if let Some(msg) = registers.receive_fifo(RxFifo::Fifo1) { |
| 944 | registers.0.ier().write(|w| { | 944 | registers.0.ier().modify(|w| { |
| 945 | w.set_fmpie(1, true); | 945 | w.set_fmpie(1, true); |
| 946 | }); | 946 | }); |
| 947 | Ok(msg) | 947 | Ok(msg) |
| 948 | } else if let Some(err) = registers.curr_error() { | 948 | } else if let Some(err) = registers.curr_error() { |
| 949 | Err(TryReadError::BusError(err)) | 949 | Err(TryReadError::BusError(err)) |
| 950 | } else { | 950 | } else { |
| 951 | registers.0.ier().modify(|w| { | ||
| 952 | w.set_fmpie(0, true); | ||
| 953 | w.set_fmpie(1, true); | ||
| 954 | }); | ||
| 951 | Err(TryReadError::Empty) | 955 | Err(TryReadError::Empty) |
| 952 | } | 956 | } |
| 953 | } | 957 | } |
