diff options
| author | Dario Nieuwenhuis <[email protected]> | 2024-03-27 22:35:43 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-03-27 22:35:43 +0000 |
| commit | 8f6c07c7750647edf9acea76cf6fe0ca1bc4da87 (patch) | |
| tree | d10402e71f7ad0149ef359b3ff1f2c965bd5ac4b | |
| parent | a678b4850c6d5db449378ede28638b86fe2c0d39 (diff) | |
| parent | c0590626273f020893a8fedf7bffa1cb9a9a6d77 (diff) | |
Merge pull request #2745 from de-vri-es/bxcan-keep-rtr-flag
embassy_stm32: Preseve the RTR flag in messages.
| -rw-r--r-- | embassy-stm32/src/can/bx/mod.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/embassy-stm32/src/can/bx/mod.rs b/embassy-stm32/src/can/bx/mod.rs index a369ae6fd..121da1bb2 100644 --- a/embassy-stm32/src/can/bx/mod.rs +++ b/embassy-stm32/src/can/bx/mod.rs | |||
| @@ -776,13 +776,13 @@ where | |||
| 776 | 776 | ||
| 777 | let mb = self.canregs.tx(idx); | 777 | let mb = self.canregs.tx(idx); |
| 778 | 778 | ||
| 779 | let id = IdReg(mb.tir().read().0).id(); | 779 | let id = IdReg(mb.tir().read().0); |
| 780 | let mut data = [0xff; 8]; | 780 | let mut data = [0xff; 8]; |
| 781 | data[0..4].copy_from_slice(&mb.tdlr().read().0.to_ne_bytes()); | 781 | data[0..4].copy_from_slice(&mb.tdlr().read().0.to_ne_bytes()); |
| 782 | data[4..8].copy_from_slice(&mb.tdhr().read().0.to_ne_bytes()); | 782 | data[4..8].copy_from_slice(&mb.tdhr().read().0.to_ne_bytes()); |
| 783 | let len = mb.tdtr().read().dlc(); | 783 | let len = mb.tdtr().read().dlc(); |
| 784 | 784 | ||
| 785 | Some(Frame::new(Header::new(id, len, false), &data).unwrap()) | 785 | Some(Frame::new(Header::new(id.id(), len, id.rtr()), &data).unwrap()) |
| 786 | } else { | 786 | } else { |
| 787 | // Abort request failed because the frame was already sent (or being sent) on | 787 | // Abort request failed because the frame was already sent (or being sent) on |
| 788 | // the bus. All mailboxes are now free. This can happen for small prescaler | 788 | // the bus. All mailboxes are now free. This can happen for small prescaler |
| @@ -915,7 +915,7 @@ fn receive_fifo(canregs: crate::pac::can::Can, fifo_nr: usize) -> nb::Result<Fra | |||
| 915 | } | 915 | } |
| 916 | 916 | ||
| 917 | // Read the frame. | 917 | // Read the frame. |
| 918 | let id = IdReg(rx.rir().read().0).id(); | 918 | let id = IdReg(rx.rir().read().0); |
| 919 | let mut data = [0xff; 8]; | 919 | let mut data = [0xff; 8]; |
| 920 | data[0..4].copy_from_slice(&rx.rdlr().read().0.to_ne_bytes()); | 920 | data[0..4].copy_from_slice(&rx.rdlr().read().0.to_ne_bytes()); |
| 921 | data[4..8].copy_from_slice(&rx.rdhr().read().0.to_ne_bytes()); | 921 | data[4..8].copy_from_slice(&rx.rdhr().read().0.to_ne_bytes()); |
| @@ -924,7 +924,7 @@ fn receive_fifo(canregs: crate::pac::can::Can, fifo_nr: usize) -> nb::Result<Fra | |||
| 924 | // Release the mailbox. | 924 | // Release the mailbox. |
| 925 | rfr.write(|w| w.set_rfom(true)); | 925 | rfr.write(|w| w.set_rfom(true)); |
| 926 | 926 | ||
| 927 | Ok(Frame::new(Header::new(id, len, false), &data).unwrap()) | 927 | Ok(Frame::new(Header::new(id.id(), len, id.rtr()), &data).unwrap()) |
| 928 | } | 928 | } |
| 929 | 929 | ||
| 930 | /// Identifies one of the two receive FIFOs. | 930 | /// Identifies one of the two receive FIFOs. |
