aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32l4/src
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-01-19 20:47:07 +0000
committerGitHub <[email protected]>2022-01-19 20:47:07 +0000
commit6b0cb0609b4bfa3e464e4603ce373a9de9886103 (patch)
tree70a6590ad9da8c625eb69c21faddb5721bfbcea4 /examples/stm32l4/src
parent071b034a5dbece727b28aee6362e36d66bcb763b (diff)
parent889d757ab8bcfc10caf0a7d75ffb7733a7e71ed1 (diff)
Merge #581
581: stm32: expose all functionality as inherent methods. r=Dirbaio a=Dirbaio This is the previous step to implementing both the embedded-hal 0.2 and embedded-hal 1.0 + embedded-hal-async traits. The equivalent in nrf was done in #552 - Removes need for `unwrap` in gpio. - Removes need for `use embedded_hal::whatever` in all cases. Co-authored-by: Dario Nieuwenhuis <[email protected]>
Diffstat (limited to 'examples/stm32l4/src')
-rw-r--r--examples/stm32l4/src/bin/blinky.rs5
-rw-r--r--examples/stm32l4/src/bin/button.rs3
-rw-r--r--examples/stm32l4/src/bin/button_exti.rs1
-rw-r--r--examples/stm32l4/src/bin/i2c.rs3
-rw-r--r--examples/stm32l4/src/bin/i2c_dma.rs1
-rw-r--r--examples/stm32l4/src/bin/spi.rs8
-rw-r--r--examples/stm32l4/src/bin/spi_blocking_async.rs9
-rw-r--r--examples/stm32l4/src/bin/spi_dma.rs9
-rw-r--r--examples/stm32l4/src/bin/usart.rs7
-rw-r--r--examples/stm32l4/src/bin/usart_dma.rs1
10 files changed, 18 insertions, 29 deletions
diff --git a/examples/stm32l4/src/bin/blinky.rs b/examples/stm32l4/src/bin/blinky.rs
index 8a65858f8..030283756 100644
--- a/examples/stm32l4/src/bin/blinky.rs
+++ b/examples/stm32l4/src/bin/blinky.rs
@@ -8,7 +8,6 @@ use embassy::executor::Spawner;
8use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
9use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
11use embedded_hal::digital::v2::OutputPin;
12use example_common::*; 11use example_common::*;
13 12
14#[embassy::main] 13#[embassy::main]
@@ -18,9 +17,9 @@ async fn main(_spawner: Spawner, p: Peripherals) {
18 let mut led = Output::new(p.PB14, Level::High, Speed::Low); 17 let mut led = Output::new(p.PB14, Level::High, Speed::Low);
19 18
20 loop { 19 loop {
21 unwrap!(led.set_high()); 20 led.set_high();
22 Timer::after(Duration::from_millis(300)).await; 21 Timer::after(Duration::from_millis(300)).await;
23 unwrap!(led.set_low()); 22 led.set_low();
24 Timer::after(Duration::from_millis(300)).await; 23 Timer::after(Duration::from_millis(300)).await;
25 } 24 }
26} 25}
diff --git a/examples/stm32l4/src/bin/button.rs b/examples/stm32l4/src/bin/button.rs
index fd8674549..6073c137e 100644
--- a/examples/stm32l4/src/bin/button.rs
+++ b/examples/stm32l4/src/bin/button.rs
@@ -5,7 +5,6 @@
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7use embassy_stm32::gpio::{Input, Pull}; 7use embassy_stm32::gpio::{Input, Pull};
8use embedded_hal::digital::v2::InputPin;
9use example_common::*; 8use example_common::*;
10 9
11#[cortex_m_rt::entry] 10#[cortex_m_rt::entry]
@@ -17,7 +16,7 @@ fn main() -> ! {
17 let button = Input::new(p.PC13, Pull::Up); 16 let button = Input::new(p.PC13, Pull::Up);
18 17
19 loop { 18 loop {
20 if unwrap!(button.is_high()) { 19 if button.is_high() {
21 info!("high"); 20 info!("high");
22 } else { 21 } else {
23 info!("low"); 22 info!("low");
diff --git a/examples/stm32l4/src/bin/button_exti.rs b/examples/stm32l4/src/bin/button_exti.rs
index 0c2483ecb..848818bf2 100644
--- a/examples/stm32l4/src/bin/button_exti.rs
+++ b/examples/stm32l4/src/bin/button_exti.rs
@@ -8,7 +8,6 @@ use embassy::executor::Spawner;
8use embassy_stm32::exti::ExtiInput; 8use embassy_stm32::exti::ExtiInput;
9use embassy_stm32::gpio::{Input, Pull}; 9use embassy_stm32::gpio::{Input, Pull};
10use embassy_stm32::Peripherals; 10use embassy_stm32::Peripherals;
11use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge};
12use example_common::*; 11use example_common::*;
13 12
14#[embassy::main] 13#[embassy::main]
diff --git a/examples/stm32l4/src/bin/i2c.rs b/examples/stm32l4/src/bin/i2c.rs
index 86215697b..615012a06 100644
--- a/examples/stm32l4/src/bin/i2c.rs
+++ b/examples/stm32l4/src/bin/i2c.rs
@@ -11,7 +11,6 @@ use embassy_stm32::i2c::I2c;
11use embassy_stm32::interrupt; 11use embassy_stm32::interrupt;
12use embassy_stm32::time::Hertz; 12use embassy_stm32::time::Hertz;
13use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
14use embedded_hal::blocking::i2c::WriteRead;
15use example_common::{info, unwrap}; 14use example_common::{info, unwrap};
16 15
17const ADDRESS: u8 = 0x5F; 16const ADDRESS: u8 = 0x5F;
@@ -23,6 +22,6 @@ async fn main(_spawner: Spawner, p: Peripherals) -> ! {
23 let mut i2c = I2c::new(p.I2C2, p.PB10, p.PB11, irq, NoDma, NoDma, Hertz(100_000)); 22 let mut i2c = I2c::new(p.I2C2, p.PB10, p.PB11, irq, NoDma, NoDma, Hertz(100_000));
24 23
25 let mut data = [0u8; 1]; 24 let mut data = [0u8; 1];
26 unwrap!(i2c.write_read(ADDRESS, &[WHOAMI], &mut data)); 25 unwrap!(i2c.blocking_write_read(ADDRESS, &[WHOAMI], &mut data));
27 info!("Whoami: {}", data[0]); 26 info!("Whoami: {}", data[0]);
28} 27}
diff --git a/examples/stm32l4/src/bin/i2c_dma.rs b/examples/stm32l4/src/bin/i2c_dma.rs
index b0596aab8..d77bee8c1 100644
--- a/examples/stm32l4/src/bin/i2c_dma.rs
+++ b/examples/stm32l4/src/bin/i2c_dma.rs
@@ -6,7 +6,6 @@
6mod example_common; 6mod example_common;
7 7
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy::traits::i2c::I2c as I2cTrait;
10use embassy_stm32::i2c::I2c; 9use embassy_stm32::i2c::I2c;
11use embassy_stm32::interrupt; 10use embassy_stm32::interrupt;
12use embassy_stm32::time::Hertz; 11use embassy_stm32::time::Hertz;
diff --git a/examples/stm32l4/src/bin/spi.rs b/examples/stm32l4/src/bin/spi.rs
index 5b9ae1ce0..8567d3062 100644
--- a/examples/stm32l4/src/bin/spi.rs
+++ b/examples/stm32l4/src/bin/spi.rs
@@ -9,8 +9,6 @@ use embassy_stm32::dma::NoDma;
9use embassy_stm32::gpio::{Level, Output, Speed}; 9use embassy_stm32::gpio::{Level, Output, Speed};
10use embassy_stm32::spi::{Config, Spi}; 10use embassy_stm32::spi::{Config, Spi};
11use embassy_stm32::time::Hertz; 11use embassy_stm32::time::Hertz;
12use embedded_hal::blocking::spi::Transfer;
13use embedded_hal::digital::v2::OutputPin;
14use example_common::*; 12use example_common::*;
15 13
16#[cortex_m_rt::entry] 14#[cortex_m_rt::entry]
@@ -34,9 +32,9 @@ fn main() -> ! {
34 32
35 loop { 33 loop {
36 let mut buf = [0x0Au8; 4]; 34 let mut buf = [0x0Au8; 4];
37 unwrap!(cs.set_low()); 35 cs.set_low();
38 unwrap!(spi.transfer(&mut buf)); 36 unwrap!(spi.blocking_transfer_in_place(&mut buf));
39 unwrap!(cs.set_high()); 37 cs.set_high();
40 info!("xfer {=[u8]:x}", buf); 38 info!("xfer {=[u8]:x}", buf);
41 } 39 }
42} 40}
diff --git a/examples/stm32l4/src/bin/spi_blocking_async.rs b/examples/stm32l4/src/bin/spi_blocking_async.rs
index f092706d4..3be3f21c9 100644
--- a/examples/stm32l4/src/bin/spi_blocking_async.rs
+++ b/examples/stm32l4/src/bin/spi_blocking_async.rs
@@ -12,7 +12,6 @@ use embassy_stm32::spi::{Config, Spi};
12use embassy_stm32::time::Hertz; 12use embassy_stm32::time::Hertz;
13use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
14use embassy_traits::{adapter::BlockingAsync, spi::FullDuplex}; 14use embassy_traits::{adapter::BlockingAsync, spi::FullDuplex};
15use embedded_hal::digital::v2::{InputPin, OutputPin};
16use example_common::*; 15use example_common::*;
17 16
18#[embassy::main] 17#[embassy::main]
@@ -41,17 +40,17 @@ async fn main(_spawner: Spawner, p: Peripherals) {
41 let ready = Input::new(p.PE1, Pull::Up); 40 let ready = Input::new(p.PE1, Pull::Up);
42 41
43 cortex_m::asm::delay(100_000); 42 cortex_m::asm::delay(100_000);
44 unwrap!(reset.set_high()); 43 reset.set_high();
45 cortex_m::asm::delay(100_000); 44 cortex_m::asm::delay(100_000);
46 45
47 while unwrap!(ready.is_low()) { 46 while ready.is_low() {
48 info!("waiting for ready"); 47 info!("waiting for ready");
49 } 48 }
50 49
51 let write = [0x0A; 10]; 50 let write = [0x0A; 10];
52 let mut read = [0; 10]; 51 let mut read = [0; 10];
53 unwrap!(cs.set_low()); 52 cs.set_low();
54 spi.read_write(&mut read, &write).await.ok(); 53 spi.read_write(&mut read, &write).await.ok();
55 unwrap!(cs.set_high()); 54 cs.set_high();
56 info!("xfer {=[u8]:x}", read); 55 info!("xfer {=[u8]:x}", read);
57} 56}
diff --git a/examples/stm32l4/src/bin/spi_dma.rs b/examples/stm32l4/src/bin/spi_dma.rs
index 4b74c7d7d..d6464bbfa 100644
--- a/examples/stm32l4/src/bin/spi_dma.rs
+++ b/examples/stm32l4/src/bin/spi_dma.rs
@@ -11,7 +11,6 @@ use embassy_stm32::spi::{Config, Spi};
11use embassy_stm32::time::Hertz; 11use embassy_stm32::time::Hertz;
12use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
13use embassy_traits::spi::FullDuplex; 13use embassy_traits::spi::FullDuplex;
14use embedded_hal::digital::v2::{InputPin, OutputPin};
15use example_common::*; 14use example_common::*;
16 15
17#[embassy::main] 16#[embassy::main]
@@ -38,17 +37,17 @@ async fn main(_spawner: Spawner, p: Peripherals) {
38 let ready = Input::new(p.PE1, Pull::Up); 37 let ready = Input::new(p.PE1, Pull::Up);
39 38
40 cortex_m::asm::delay(100_000); 39 cortex_m::asm::delay(100_000);
41 unwrap!(reset.set_high()); 40 reset.set_high();
42 cortex_m::asm::delay(100_000); 41 cortex_m::asm::delay(100_000);
43 42
44 while unwrap!(ready.is_low()) { 43 while ready.is_low() {
45 info!("waiting for ready"); 44 info!("waiting for ready");
46 } 45 }
47 46
48 let write = [0x0A; 10]; 47 let write = [0x0A; 10];
49 let mut read = [0; 10]; 48 let mut read = [0; 10];
50 unwrap!(cs.set_low()); 49 cs.set_low();
51 spi.read_write(&mut read, &write).await.ok(); 50 spi.read_write(&mut read, &write).await.ok();
52 unwrap!(cs.set_high()); 51 cs.set_high();
53 info!("xfer {=[u8]:x}", read); 52 info!("xfer {=[u8]:x}", read);
54} 53}
diff --git a/examples/stm32l4/src/bin/usart.rs b/examples/stm32l4/src/bin/usart.rs
index b6decbc9d..00875c896 100644
--- a/examples/stm32l4/src/bin/usart.rs
+++ b/examples/stm32l4/src/bin/usart.rs
@@ -7,7 +7,6 @@ mod example_common;
7 7
8use embassy_stm32::dma::NoDma; 8use embassy_stm32::dma::NoDma;
9use embassy_stm32::usart::{Config, Uart}; 9use embassy_stm32::usart::{Config, Uart};
10use embedded_hal::blocking::serial::Write;
11use example_common::*; 10use example_common::*;
12 11
13#[cortex_m_rt::entry] 12#[cortex_m_rt::entry]
@@ -19,12 +18,12 @@ fn main() -> ! {
19 let config = Config::default(); 18 let config = Config::default();
20 let mut usart = Uart::new(p.UART4, p.PA1, p.PA0, NoDma, NoDma, config); 19 let mut usart = Uart::new(p.UART4, p.PA1, p.PA0, NoDma, NoDma, config);
21 20
22 unwrap!(usart.bwrite_all(b"Hello Embassy World!\r\n")); 21 unwrap!(usart.blocking_write(b"Hello Embassy World!\r\n"));
23 info!("wrote Hello, starting echo"); 22 info!("wrote Hello, starting echo");
24 23
25 let mut buf = [0u8; 1]; 24 let mut buf = [0u8; 1];
26 loop { 25 loop {
27 unwrap!(usart.read_blocking(&mut buf)); 26 unwrap!(usart.blocking_read(&mut buf));
28 unwrap!(usart.bwrite_all(&buf)); 27 unwrap!(usart.blocking_write(&buf));
29 } 28 }
30} 29}
diff --git a/examples/stm32l4/src/bin/usart_dma.rs b/examples/stm32l4/src/bin/usart_dma.rs
index b49d3d882..b3a1e3897 100644
--- a/examples/stm32l4/src/bin/usart_dma.rs
+++ b/examples/stm32l4/src/bin/usart_dma.rs
@@ -9,7 +9,6 @@ use embassy::executor::Spawner;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart}; 10use embassy_stm32::usart::{Config, Uart};
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use embassy_traits::uart::Write as _;
13use example_common::*; 12use example_common::*;
14use heapless::String; 13use heapless::String;
15 14