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