aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32wl/src/bin/lora_lorawan.rs12
-rw-r--r--examples/stm32wl/src/bin/lora_p2p_receive.rs12
-rw-r--r--examples/stm32wl/src/bin/lora_p2p_send.rs12
-rw-r--r--examples/stm32wl/src/bin/uart_async.rs15
4 files changed, 30 insertions, 21 deletions
diff --git a/examples/stm32wl/src/bin/lora_lorawan.rs b/examples/stm32wl/src/bin/lora_lorawan.rs
index 1a271b2f2..e179c5ca1 100644
--- a/examples/stm32wl/src/bin/lora_lorawan.rs
+++ b/examples/stm32wl/src/bin/lora_lorawan.rs
@@ -7,12 +7,12 @@
7 7
8use defmt::info; 8use defmt::info;
9use embassy_executor::Spawner; 9use embassy_executor::Spawner;
10use embassy_lora::iv::Stm32wlInterfaceVariant; 10use embassy_lora::iv::{InterruptHandler, Stm32wlInterfaceVariant};
11use embassy_lora::LoraTimer; 11use embassy_lora::LoraTimer;
12use embassy_stm32::gpio::{Level, Output, Pin, Speed}; 12use embassy_stm32::gpio::{Level, Output, Pin, Speed};
13use embassy_stm32::rng::Rng; 13use embassy_stm32::rng::Rng;
14use embassy_stm32::spi::Spi; 14use embassy_stm32::spi::Spi;
15use embassy_stm32::{interrupt, into_ref, pac, Peripheral}; 15use embassy_stm32::{bind_interrupts, pac};
16use embassy_time::Delay; 16use embassy_time::Delay;
17use lora_phy::mod_params::*; 17use lora_phy::mod_params::*;
18use lora_phy::sx1261_2::SX1261_2; 18use lora_phy::sx1261_2::SX1261_2;
@@ -24,6 +24,10 @@ use {defmt_rtt as _, panic_probe as _};
24 24
25const LORAWAN_REGION: region::Region = region::Region::EU868; // warning: set this appropriately for the region 25const LORAWAN_REGION: region::Region = region::Region::EU868; // warning: set this appropriately for the region
26 26
27bind_interrupts!(struct Irqs{
28 SUBGHZ_RADIO => InterruptHandler;
29});
30
27#[embassy_executor::main] 31#[embassy_executor::main]
28async fn main(_spawner: Spawner) { 32async fn main(_spawner: Spawner) {
29 let mut config = embassy_stm32::Config::default(); 33 let mut config = embassy_stm32::Config::default();
@@ -35,13 +39,11 @@ async fn main(_spawner: Spawner) {
35 39
36 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2); 40 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2);
37 41
38 let irq = interrupt::take!(SUBGHZ_RADIO);
39 into_ref!(irq);
40 // Set CTRL1 and CTRL3 for high-power transmission, while CTRL2 acts as an RF switch between tx and rx 42 // Set CTRL1 and CTRL3 for high-power transmission, while CTRL2 acts as an RF switch between tx and rx
41 let _ctrl1 = Output::new(p.PC4.degrade(), Level::Low, Speed::High); 43 let _ctrl1 = Output::new(p.PC4.degrade(), Level::Low, Speed::High);
42 let ctrl2 = Output::new(p.PC5.degrade(), Level::High, Speed::High); 44 let ctrl2 = Output::new(p.PC5.degrade(), Level::High, Speed::High);
43 let _ctrl3 = Output::new(p.PC3.degrade(), Level::High, Speed::High); 45 let _ctrl3 = Output::new(p.PC3.degrade(), Level::High, Speed::High);
44 let iv = Stm32wlInterfaceVariant::new(irq, None, Some(ctrl2)).unwrap(); 46 let iv = Stm32wlInterfaceVariant::new(Irqs, None, Some(ctrl2)).unwrap();
45 47
46 let mut delay = Delay; 48 let mut delay = Delay;
47 49
diff --git a/examples/stm32wl/src/bin/lora_p2p_receive.rs b/examples/stm32wl/src/bin/lora_p2p_receive.rs
index 5e80e8f6a..d3f051b1c 100644
--- a/examples/stm32wl/src/bin/lora_p2p_receive.rs
+++ b/examples/stm32wl/src/bin/lora_p2p_receive.rs
@@ -7,10 +7,10 @@
7 7
8use defmt::info; 8use defmt::info;
9use embassy_executor::Spawner; 9use embassy_executor::Spawner;
10use embassy_lora::iv::Stm32wlInterfaceVariant; 10use embassy_lora::iv::{InterruptHandler, Stm32wlInterfaceVariant};
11use embassy_stm32::bind_interrupts;
11use embassy_stm32::gpio::{Level, Output, Pin, Speed}; 12use embassy_stm32::gpio::{Level, Output, Pin, Speed};
12use embassy_stm32::spi::Spi; 13use embassy_stm32::spi::Spi;
13use embassy_stm32::{interrupt, into_ref, Peripheral};
14use embassy_time::{Delay, Duration, Timer}; 14use embassy_time::{Delay, Duration, Timer};
15use lora_phy::mod_params::*; 15use lora_phy::mod_params::*;
16use lora_phy::sx1261_2::SX1261_2; 16use lora_phy::sx1261_2::SX1261_2;
@@ -19,6 +19,10 @@ use {defmt_rtt as _, panic_probe as _};
19 19
20const LORA_FREQUENCY_IN_HZ: u32 = 903_900_000; // warning: set this appropriately for the region 20const LORA_FREQUENCY_IN_HZ: u32 = 903_900_000; // warning: set this appropriately for the region
21 21
22bind_interrupts!(struct Irqs{
23 SUBGHZ_RADIO => InterruptHandler;
24});
25
22#[embassy_executor::main] 26#[embassy_executor::main]
23async fn main(_spawner: Spawner) { 27async fn main(_spawner: Spawner) {
24 let mut config = embassy_stm32::Config::default(); 28 let mut config = embassy_stm32::Config::default();
@@ -27,13 +31,11 @@ async fn main(_spawner: Spawner) {
27 31
28 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2); 32 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2);
29 33
30 let irq = interrupt::take!(SUBGHZ_RADIO);
31 into_ref!(irq);
32 // Set CTRL1 and CTRL3 for high-power transmission, while CTRL2 acts as an RF switch between tx and rx 34 // Set CTRL1 and CTRL3 for high-power transmission, while CTRL2 acts as an RF switch between tx and rx
33 let _ctrl1 = Output::new(p.PC4.degrade(), Level::Low, Speed::High); 35 let _ctrl1 = Output::new(p.PC4.degrade(), Level::Low, Speed::High);
34 let ctrl2 = Output::new(p.PC5.degrade(), Level::High, Speed::High); 36 let ctrl2 = Output::new(p.PC5.degrade(), Level::High, Speed::High);
35 let _ctrl3 = Output::new(p.PC3.degrade(), Level::High, Speed::High); 37 let _ctrl3 = Output::new(p.PC3.degrade(), Level::High, Speed::High);
36 let iv = Stm32wlInterfaceVariant::new(irq, None, Some(ctrl2)).unwrap(); 38 let iv = Stm32wlInterfaceVariant::new(Irqs, None, Some(ctrl2)).unwrap();
37 39
38 let mut delay = Delay; 40 let mut delay = Delay;
39 41
diff --git a/examples/stm32wl/src/bin/lora_p2p_send.rs b/examples/stm32wl/src/bin/lora_p2p_send.rs
index e22c714bd..fc5205c85 100644
--- a/examples/stm32wl/src/bin/lora_p2p_send.rs
+++ b/examples/stm32wl/src/bin/lora_p2p_send.rs
@@ -7,10 +7,10 @@
7 7
8use defmt::info; 8use defmt::info;
9use embassy_executor::Spawner; 9use embassy_executor::Spawner;
10use embassy_lora::iv::Stm32wlInterfaceVariant; 10use embassy_lora::iv::{InterruptHandler, Stm32wlInterfaceVariant};
11use embassy_stm32::bind_interrupts;
11use embassy_stm32::gpio::{Level, Output, Pin, Speed}; 12use embassy_stm32::gpio::{Level, Output, Pin, Speed};
12use embassy_stm32::spi::Spi; 13use embassy_stm32::spi::Spi;
13use embassy_stm32::{interrupt, into_ref, Peripheral};
14use embassy_time::Delay; 14use embassy_time::Delay;
15use lora_phy::mod_params::*; 15use lora_phy::mod_params::*;
16use lora_phy::sx1261_2::SX1261_2; 16use lora_phy::sx1261_2::SX1261_2;
@@ -19,6 +19,10 @@ use {defmt_rtt as _, panic_probe as _};
19 19
20const LORA_FREQUENCY_IN_HZ: u32 = 903_900_000; // warning: set this appropriately for the region 20const LORA_FREQUENCY_IN_HZ: u32 = 903_900_000; // warning: set this appropriately for the region
21 21
22bind_interrupts!(struct Irqs{
23 SUBGHZ_RADIO => InterruptHandler;
24});
25
22#[embassy_executor::main] 26#[embassy_executor::main]
23async fn main(_spawner: Spawner) { 27async fn main(_spawner: Spawner) {
24 let mut config = embassy_stm32::Config::default(); 28 let mut config = embassy_stm32::Config::default();
@@ -27,13 +31,11 @@ async fn main(_spawner: Spawner) {
27 31
28 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2); 32 let spi = Spi::new_subghz(p.SUBGHZSPI, p.DMA1_CH1, p.DMA1_CH2);
29 33
30 let irq = interrupt::take!(SUBGHZ_RADIO);
31 into_ref!(irq);
32 // Set CTRL1 and CTRL3 for high-power transmission, while CTRL2 acts as an RF switch between tx and rx 34 // Set CTRL1 and CTRL3 for high-power transmission, while CTRL2 acts as an RF switch between tx and rx
33 let _ctrl1 = Output::new(p.PC4.degrade(), Level::Low, Speed::High); 35 let _ctrl1 = Output::new(p.PC4.degrade(), Level::Low, Speed::High);
34 let ctrl2 = Output::new(p.PC5.degrade(), Level::High, Speed::High); 36 let ctrl2 = Output::new(p.PC5.degrade(), Level::High, Speed::High);
35 let _ctrl3 = Output::new(p.PC3.degrade(), Level::High, Speed::High); 37 let _ctrl3 = Output::new(p.PC3.degrade(), Level::High, Speed::High);
36 let iv = Stm32wlInterfaceVariant::new(irq, None, Some(ctrl2)).unwrap(); 38 let iv = Stm32wlInterfaceVariant::new(Irqs, None, Some(ctrl2)).unwrap();
37 39
38 let mut delay = Delay; 40 let mut delay = Delay;
39 41
diff --git a/examples/stm32wl/src/bin/uart_async.rs b/examples/stm32wl/src/bin/uart_async.rs
index ac8766af6..07b0f9d2c 100644
--- a/examples/stm32wl/src/bin/uart_async.rs
+++ b/examples/stm32wl/src/bin/uart_async.rs
@@ -4,10 +4,15 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::interrupt; 7use embassy_stm32::usart::{Config, InterruptHandler, Uart};
8use embassy_stm32::usart::{Config, Uart}; 8use embassy_stm32::{bind_interrupts, peripherals};
9use {defmt_rtt as _, panic_probe as _}; 9use {defmt_rtt as _, panic_probe as _};
10 10
11bind_interrupts!(struct Irqs{
12 USART1 => InterruptHandler<peripherals::USART1>;
13 LPUART1 => InterruptHandler<peripherals::LPUART1>;
14});
15
11/* 16/*
12Pass Incoming data from LPUART1 to USART1 17Pass Incoming data from LPUART1 to USART1
13Example is written for the LoRa-E5 mini v1.0, 18Example is written for the LoRa-E5 mini v1.0,
@@ -28,12 +33,10 @@ async fn main(_spawner: Spawner) {
28 config2.baudrate = 9600; 33 config2.baudrate = 9600;
29 34
30 //RX/TX connected to USB/UART Bridge on LoRa-E5 mini v1.0 35 //RX/TX connected to USB/UART Bridge on LoRa-E5 mini v1.0
31 let irq = interrupt::take!(USART1); 36 let mut usart1 = Uart::new(p.USART1, p.PB7, p.PB6, Irqs, p.DMA1_CH3, p.DMA1_CH4, config1);
32 let mut usart1 = Uart::new(p.USART1, p.PB7, p.PB6, irq, p.DMA1_CH3, p.DMA1_CH4, config1);
33 37
34 //RX1/TX1 (LPUART) on LoRa-E5 mini v1.0 38 //RX1/TX1 (LPUART) on LoRa-E5 mini v1.0
35 let irq = interrupt::take!(LPUART1); 39 let mut usart2 = Uart::new(p.LPUART1, p.PC0, p.PC1, Irqs, p.DMA1_CH5, p.DMA1_CH6, config2);
36 let mut usart2 = Uart::new(p.LPUART1, p.PC0, p.PC1, irq, p.DMA1_CH5, p.DMA1_CH6, config2);
37 40
38 unwrap!(usart1.write(b"Hello Embassy World!\r\n").await); 41 unwrap!(usart1.write(b"Hello Embassy World!\r\n").await);
39 unwrap!(usart2.write(b"Hello Embassy World!\r\n").await); 42 unwrap!(usart2.write(b"Hello Embassy World!\r\n").await);