aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/src/can/bxcan.rs19
1 files changed, 16 insertions, 3 deletions
diff --git a/embassy-stm32/src/can/bxcan.rs b/embassy-stm32/src/can/bxcan.rs
index cb667695a..4887ee143 100644
--- a/embassy-stm32/src/can/bxcan.rs
+++ b/embassy-stm32/src/can/bxcan.rs
@@ -96,10 +96,23 @@ foreach_peripheral!(
96 // CAN1 owns the filter bank and needs to be enabled in order 96 // CAN1 owns the filter bank and needs to be enabled in order
97 // for CAN2 to receive messages. 97 // for CAN2 to receive messages.
98 (can, CAN1) => { 98 (can, CAN1) => {
99 unsafe impl bxcan::FilterOwner for peripherals::CAN1 { 99 cfg_if::cfg_if! {
100 const NUM_FILTER_BANKS: u8 = 28; 100 if #[cfg(all(
101 any(stm32l4, stm32l72, stm32l73),
102 not(any(stm32l49, stm32l4a))
103 ))] {
104 // Most L4 devices and some F7 devices use the name "CAN1"
105 // even if there is no "CAN2" peripheral.
106 unsafe impl bxcan::FilterOwner for peripherals::CAN1 {
107 const NUM_FILTER_BANKS: u8 = 14;
108 }
109 } else {
110 unsafe impl bxcan::FilterOwner for peripherals::CAN1 {
111 const NUM_FILTER_BANKS: u8 = 28;
112 }
113 unsafe impl bxcan::MasterInstance for peripherals::CAN1 {}
114 }
101 } 115 }
102 unsafe impl bxcan::MasterInstance for peripherals::CAN1 {}
103 }; 116 };
104 (can, CAN3) => { 117 (can, CAN3) => {
105 unsafe impl bxcan::FilterOwner for peripherals::CAN3 { 118 unsafe impl bxcan::FilterOwner for peripherals::CAN3 {