diff --git a/embassy-stm32/src/spi/mod.rs b/embassy-stm32/src/spi/mod.rs index ead8411ec..7390830dc 100644 --- a/embassy-stm32/src/spi/mod.rs +++ b/embassy-stm32/src/spi/mod.rs @@ -194,17 +194,17 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { Self::new_inner(peri, None, Some(mosi.map_into()), None, txdma, rxdma, freq, config) } + #[cfg(stm32wl)] /// Useful for on chip peripherals like SUBGHZ which are hardwired. - #[allow(dead_code)] pub fn new_subghz( peri: impl Peripheral

+ 'd, txdma: impl Peripheral

+ 'd, rxdma: impl Peripheral

+ 'd, - pclk3_freq: u32, ) -> Self { // see RM0453 rev 1 section 7.2.13 page 291 // The SUBGHZSPI_SCK frequency is obtained by PCLK3 divided by two. // The SUBGHZSPI_SCK clock maximum speed must not exceed 16 MHz. + let pclk3_freq = ::frequency().0; let freq = Hertz(core::cmp::min(pclk3_freq / 2, 16_000_000)); let mut config = Config::default(); config.mode = MODE_0; diff --git a/examples/stm32wl/src/bin/lora_lorawan.rs b/examples/stm32wl/src/bin/lora_lorawan.rs index 467ba7604..644ce2959 100644 --- a/examples/stm32wl/src/bin/lora_lorawan.rs +++ b/examples/stm32wl/src/bin/lora_lorawan.rs @@ -11,8 +11,6 @@ use embassy_executor::Spawner; use embassy_lora::iv::Stm32wlInterfaceVariant; use embassy_lora::LoraTimer; use embassy_stm32::gpio::{Level, Output, Pin, Speed}; -use embassy_stm32::peripherals::SUBGHZSPI; -use embassy_stm32::rcc::low_level::RccPeripheral; use embassy_stm32::rng::Rng; use embassy_stm32::spi::Spi; use embassy_stm32::{interrupt, into_ref, pac, Peripheral}; @@ -36,8 +34,7 @@ async fn main(_spawner: Spawner) { unsafe { pac::RCC.ccipr().modify(|w| w.set_rngsel(0b01)) } - let pclk3_freq = SUBGHZSPI::frequency().0; - let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2, pclk3_freq); + let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2); let irq = interrupt::take!(SUBGHZ_RADIO); into_ref!(irq); diff --git a/examples/stm32wl/src/bin/lora_p2p_receive.rs b/examples/stm32wl/src/bin/lora_p2p_receive.rs index cb0a8e349..81e9c7057 100644 --- a/examples/stm32wl/src/bin/lora_p2p_receive.rs +++ b/examples/stm32wl/src/bin/lora_p2p_receive.rs @@ -10,8 +10,6 @@ use defmt::info; use embassy_executor::Spawner; use embassy_lora::iv::Stm32wlInterfaceVariant; use embassy_stm32::gpio::{Level, Output, Pin, Speed}; -use embassy_stm32::peripherals::SUBGHZSPI; -use embassy_stm32::rcc::low_level::RccPeripheral; use embassy_stm32::spi::Spi; use embassy_stm32::{interrupt, into_ref, Peripheral}; use embassy_time::{Delay, Duration, Timer}; @@ -28,8 +26,7 @@ async fn main(_spawner: Spawner) { config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32; let p = embassy_stm32::init(config); - let pclk3_freq = SUBGHZSPI::frequency().0; - let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2, pclk3_freq); + let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2); let irq = interrupt::take!(SUBGHZ_RADIO); into_ref!(irq); diff --git a/examples/stm32wl/src/bin/lora_p2p_send.rs b/examples/stm32wl/src/bin/lora_p2p_send.rs index f267f2ae6..263d4e670 100644 --- a/examples/stm32wl/src/bin/lora_p2p_send.rs +++ b/examples/stm32wl/src/bin/lora_p2p_send.rs @@ -10,8 +10,6 @@ use defmt::info; use embassy_executor::Spawner; use embassy_lora::iv::Stm32wlInterfaceVariant; use embassy_stm32::gpio::{Level, Output, Pin, Speed}; -use embassy_stm32::peripherals::SUBGHZSPI; -use embassy_stm32::rcc::low_level::RccPeripheral; use embassy_stm32::spi::Spi; use embassy_stm32::{interrupt, into_ref, Peripheral}; use embassy_time::Delay; @@ -28,8 +26,7 @@ async fn main(_spawner: Spawner) { config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32; let p = embassy_stm32::init(config); - let pclk3_freq = SUBGHZSPI::frequency().0; - let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2, pclk3_freq); + let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2); let irq = interrupt::take!(SUBGHZ_RADIO); into_ref!(irq);