diff options
| -rw-r--r-- | embassy-stm32/src/can/bxcan.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/embassy-stm32/src/can/bxcan.rs b/embassy-stm32/src/can/bxcan.rs index 08ba783ff..1ab4dc1fc 100644 --- a/embassy-stm32/src/can/bxcan.rs +++ b/embassy-stm32/src/can/bxcan.rs | |||
| @@ -226,7 +226,10 @@ impl<'d, T: Instance> Can<'d, T> { | |||
| 226 | let id = if rir.ide() == RirIde::STANDARD { | 226 | let id = if rir.ide() == RirIde::STANDARD { |
| 227 | Id::from(StandardId::new_unchecked(rir.stid())) | 227 | Id::from(StandardId::new_unchecked(rir.stid())) |
| 228 | } else { | 228 | } else { |
| 229 | Id::from(ExtendedId::new_unchecked(rir.exid())) | 229 | let stid = (rir.stid() & 0x7FF) as u32; |
| 230 | let exid = rir.exid() & 0x3FFFF; | ||
| 231 | let id = (stid << 18) | (exid as u32); | ||
| 232 | Id::from(ExtendedId::new_unchecked(id)) | ||
| 230 | }; | 233 | }; |
| 231 | let data_len = fifo.rdtr().read().dlc() as usize; | 234 | let data_len = fifo.rdtr().read().dlc() as usize; |
| 232 | let mut data: [u8; 8] = [0; 8]; | 235 | let mut data: [u8; 8] = [0; 8]; |
