aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-06-20 17:45:28 -0500
committerGitHub <[email protected]>2023-06-20 17:45:28 -0500
commitca21027eea1565b6d6fce631533943c3da7f56f0 (patch)
tree26a34589b4e8ddb0495a5a26d9ba5fdf7fd9bc59
parent0a551eb7c6646af1b5c7e79849594fafe877e99a (diff)
parentf6c1108bdf444ba9aef1113ec39c7fc814dab85e (diff)
Merge pull request #3 from schphil/can
fix extended can id
-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];