aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32wl/src/bin
diff options
context:
space:
mode:
authorceekdee <[email protected]>2023-05-03 21:05:47 -0500
committerceekdee <[email protected]>2023-05-03 21:05:47 -0500
commit629e0ea595b28d89aad3f953b7190b04d78ff9d3 (patch)
treed7e2b684669639bcd8b3484735e0244aa05ae709 /examples/stm32wl/src/bin
parent6096f0cf4b5ef45b97665166be41bfd490748f40 (diff)
Handle SUBGHZSPI as async.
Diffstat (limited to 'examples/stm32wl/src/bin')
-rw-r--r--examples/stm32wl/src/bin/lora_lorawan.rs18
-rw-r--r--examples/stm32wl/src/bin/lora_p2p_receive.rs14
-rw-r--r--examples/stm32wl/src/bin/lora_p2p_send.rs14
3 files changed, 11 insertions, 35 deletions
diff --git a/examples/stm32wl/src/bin/lora_lorawan.rs b/examples/stm32wl/src/bin/lora_lorawan.rs
index 4bcc5420e..467ba7604 100644
--- a/examples/stm32wl/src/bin/lora_lorawan.rs
+++ b/examples/stm32wl/src/bin/lora_lorawan.rs
@@ -7,17 +7,14 @@
7#![allow(incomplete_features)] 7#![allow(incomplete_features)]
8 8
9use defmt::info; 9use defmt::info;
10use embassy_embedded_hal::adapter::BlockingAsync;
11use embassy_executor::Spawner; 10use embassy_executor::Spawner;
12use embassy_lora::iv::Stm32wlInterfaceVariant; 11use embassy_lora::iv::Stm32wlInterfaceVariant;
13use embassy_lora::LoraTimer; 12use embassy_lora::LoraTimer;
14use embassy_stm32::dma::NoDma;
15use embassy_stm32::gpio::{Level, Output, Pin, Speed}; 13use embassy_stm32::gpio::{Level, Output, Pin, Speed};
16use embassy_stm32::peripherals::SUBGHZSPI; 14use embassy_stm32::peripherals::SUBGHZSPI;
17use embassy_stm32::rcc::low_level::RccPeripheral; 15use embassy_stm32::rcc::low_level::RccPeripheral;
18use embassy_stm32::rng::Rng; 16use embassy_stm32::rng::Rng;
19use embassy_stm32::spi::{BitOrder, Config as SpiConfig, Spi, MODE_0}; 17use embassy_stm32::spi::Spi;
20use embassy_stm32::time::Hertz;
21use embassy_stm32::{interrupt, into_ref, pac, Peripheral}; 18use embassy_stm32::{interrupt, into_ref, pac, Peripheral};
22use embassy_time::Delay; 19use embassy_time::Delay;
23use lora_phy::mod_params::*; 20use lora_phy::mod_params::*;
@@ -33,19 +30,14 @@ const LORAWAN_REGION: region::Region = region::Region::EU868; // warning: set th
33#[embassy_executor::main] 30#[embassy_executor::main]
34async fn main(_spawner: Spawner) { 31async fn main(_spawner: Spawner) {
35 let mut config = embassy_stm32::Config::default(); 32 let mut config = embassy_stm32::Config::default();
36 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16; 33 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32;
37 config.rcc.enable_lsi = true; 34 config.rcc.enable_lsi = true; // enable RNG
38 let p = embassy_stm32::init(config); 35 let p = embassy_stm32::init(config);
39 36
40 unsafe { pac::RCC.ccipr().modify(|w| w.set_rngsel(0b01)) } 37 unsafe { pac::RCC.ccipr().modify(|w| w.set_rngsel(0b01)) }
41 38
42 let clk = Hertz(core::cmp::min(SUBGHZSPI::frequency().0 / 2, 16_000_000)); 39 let pclk3_freq = SUBGHZSPI::frequency().0;
43 let mut spi_config = SpiConfig::default(); 40 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2, pclk3_freq);
44 spi_config.mode = MODE_0;
45 spi_config.bit_order = BitOrder::MsbFirst;
46 let spi = Spi::new_subghz(p.SUBGHZSPI, NoDma, NoDma, clk, spi_config);
47
48 let spi = BlockingAsync::new(spi);
49 41
50 let irq = interrupt::take!(SUBGHZ_RADIO); 42 let irq = interrupt::take!(SUBGHZ_RADIO);
51 into_ref!(irq); 43 into_ref!(irq);
diff --git a/examples/stm32wl/src/bin/lora_p2p_receive.rs b/examples/stm32wl/src/bin/lora_p2p_receive.rs
index bb31518c4..cb0a8e349 100644
--- a/examples/stm32wl/src/bin/lora_p2p_receive.rs
+++ b/examples/stm32wl/src/bin/lora_p2p_receive.rs
@@ -7,15 +7,12 @@
7#![allow(incomplete_features)] 7#![allow(incomplete_features)]
8 8
9use defmt::info; 9use defmt::info;
10use embassy_embedded_hal::adapter::BlockingAsync;
11use embassy_executor::Spawner; 10use embassy_executor::Spawner;
12use embassy_lora::iv::Stm32wlInterfaceVariant; 11use embassy_lora::iv::Stm32wlInterfaceVariant;
13use embassy_stm32::dma::NoDma;
14use embassy_stm32::gpio::{Level, Output, Pin, Speed}; 12use embassy_stm32::gpio::{Level, Output, Pin, Speed};
15use embassy_stm32::peripherals::SUBGHZSPI; 13use embassy_stm32::peripherals::SUBGHZSPI;
16use embassy_stm32::rcc::low_level::RccPeripheral; 14use embassy_stm32::rcc::low_level::RccPeripheral;
17use embassy_stm32::spi::{BitOrder, Config as SpiConfig, Spi, MODE_0}; 15use embassy_stm32::spi::Spi;
18use embassy_stm32::time::Hertz;
19use embassy_stm32::{interrupt, into_ref, Peripheral}; 16use embassy_stm32::{interrupt, into_ref, Peripheral};
20use embassy_time::{Delay, Duration, Timer}; 17use embassy_time::{Delay, Duration, Timer};
21use lora_phy::mod_params::*; 18use lora_phy::mod_params::*;
@@ -31,13 +28,8 @@ async fn main(_spawner: Spawner) {
31 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32; 28 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32;
32 let p = embassy_stm32::init(config); 29 let p = embassy_stm32::init(config);
33 30
34 let clk = Hertz(core::cmp::min(SUBGHZSPI::frequency().0 / 2, 16_000_000)); 31 let pclk3_freq = SUBGHZSPI::frequency().0;
35 let mut spi_config = SpiConfig::default(); 32 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2, pclk3_freq);
36 spi_config.mode = MODE_0;
37 spi_config.bit_order = BitOrder::MsbFirst;
38 let spi = Spi::new_subghz(p.SUBGHZSPI, NoDma, NoDma, clk, spi_config);
39
40 let spi = BlockingAsync::new(spi);
41 33
42 let irq = interrupt::take!(SUBGHZ_RADIO); 34 let irq = interrupt::take!(SUBGHZ_RADIO);
43 into_ref!(irq); 35 into_ref!(irq);
diff --git a/examples/stm32wl/src/bin/lora_p2p_send.rs b/examples/stm32wl/src/bin/lora_p2p_send.rs
index 8a38402fa..f267f2ae6 100644
--- a/examples/stm32wl/src/bin/lora_p2p_send.rs
+++ b/examples/stm32wl/src/bin/lora_p2p_send.rs
@@ -7,15 +7,12 @@
7#![allow(incomplete_features)] 7#![allow(incomplete_features)]
8 8
9use defmt::info; 9use defmt::info;
10use embassy_embedded_hal::adapter::BlockingAsync;
11use embassy_executor::Spawner; 10use embassy_executor::Spawner;
12use embassy_lora::iv::Stm32wlInterfaceVariant; 11use embassy_lora::iv::Stm32wlInterfaceVariant;
13use embassy_stm32::dma::NoDma;
14use embassy_stm32::gpio::{Level, Output, Pin, Speed}; 12use embassy_stm32::gpio::{Level, Output, Pin, Speed};
15use embassy_stm32::peripherals::SUBGHZSPI; 13use embassy_stm32::peripherals::SUBGHZSPI;
16use embassy_stm32::rcc::low_level::RccPeripheral; 14use embassy_stm32::rcc::low_level::RccPeripheral;
17use embassy_stm32::spi::{BitOrder, Config as SpiConfig, Spi, MODE_0}; 15use embassy_stm32::spi::Spi;
18use embassy_stm32::time::Hertz;
19use embassy_stm32::{interrupt, into_ref, Peripheral}; 16use embassy_stm32::{interrupt, into_ref, Peripheral};
20use embassy_time::Delay; 17use embassy_time::Delay;
21use lora_phy::mod_params::*; 18use lora_phy::mod_params::*;
@@ -31,13 +28,8 @@ async fn main(_spawner: Spawner) {
31 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32; 28 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32;
32 let p = embassy_stm32::init(config); 29 let p = embassy_stm32::init(config);
33 30
34 let clk = Hertz(core::cmp::min(SUBGHZSPI::frequency().0 / 2, 16_000_000)); 31 let pclk3_freq = SUBGHZSPI::frequency().0;
35 let mut spi_config = SpiConfig::default(); 32 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2, pclk3_freq);
36 spi_config.mode = MODE_0;
37 spi_config.bit_order = BitOrder::MsbFirst;
38 let spi = Spi::new_subghz(p.SUBGHZSPI, NoDma, NoDma, clk, spi_config);
39
40 let spi = BlockingAsync::new(spi);
41 33
42 let irq = interrupt::take!(SUBGHZ_RADIO); 34 let irq = interrupt::take!(SUBGHZ_RADIO);
43 into_ref!(irq); 35 into_ref!(irq);