diff options
| author | Henrik Alsér <[email protected]> | 2022-08-30 00:30:47 +0200 |
|---|---|---|
| committer | Henrik Alsér <[email protected]> | 2022-09-01 15:12:43 +0200 |
| commit | 07c64d902e001ab0943382e9da35f9280a5533d0 (patch) | |
| tree | 7b7033da1fdbdfa1ece68fff623957c16b1cc5bb /examples | |
| parent | e7d4bf258a8cc30d650d7babc80c79a672052549 (diff) | |
example
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/rp/src/bin/spi.rs | 4 | ||||
| -rw-r--r-- | examples/rp/src/bin/spi_async.rs | 31 |
2 files changed, 33 insertions, 2 deletions
diff --git a/examples/rp/src/bin/spi.rs b/examples/rp/src/bin/spi.rs index 88003ee17..e50297ae4 100644 --- a/examples/rp/src/bin/spi.rs +++ b/examples/rp/src/bin/spi.rs | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_rp::spi::Spi; | 7 | use embassy_rp::spi::{Blocking, Spi}; |
| 8 | use embassy_rp::{gpio, spi}; | 8 | use embassy_rp::{gpio, spi}; |
| 9 | use gpio::{Level, Output}; | 9 | use gpio::{Level, Output}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| @@ -24,7 +24,7 @@ async fn main(_spawner: Spawner) { | |||
| 24 | // create SPI | 24 | // create SPI |
| 25 | let mut config = spi::Config::default(); | 25 | let mut config = spi::Config::default(); |
| 26 | config.frequency = 2_000_000; | 26 | config.frequency = 2_000_000; |
| 27 | let mut spi = Spi::new(p.SPI1, clk, mosi, miso, config); | 27 | let mut spi: Spi<'_, _, Blocking> = Spi::new_blocking(p.SPI1, clk, mosi, miso, config); |
| 28 | 28 | ||
| 29 | // Configure CS | 29 | // Configure CS |
| 30 | let mut cs = Output::new(touch_cs, Level::Low); | 30 | let mut cs = Output::new(touch_cs, Level::Low); |
diff --git a/examples/rp/src/bin/spi_async.rs b/examples/rp/src/bin/spi_async.rs new file mode 100644 index 000000000..f21377ede --- /dev/null +++ b/examples/rp/src/bin/spi_async.rs | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | #![no_std] | ||
| 2 | #![no_main] | ||
| 3 | #![feature(type_alias_impl_trait)] | ||
| 4 | |||
| 5 | use defmt::*; | ||
| 6 | use embassy_executor::Spawner; | ||
| 7 | use embassy_rp::spi::{Async, Spi}; | ||
| 8 | use embassy_rp::{gpio, spi}; | ||
| 9 | use embassy_time::{Duration, Timer}; | ||
| 10 | use gpio::{Level, Output}; | ||
| 11 | use {defmt_rtt as _, panic_probe as _}; | ||
| 12 | |||
| 13 | #[embassy_executor::main] | ||
| 14 | async fn main(_spawner: Spawner) { | ||
| 15 | let p = embassy_rp::init(Default::default()); | ||
| 16 | info!("Hello World!"); | ||
| 17 | |||
| 18 | let miso = p.PIN_12; | ||
| 19 | let mosi = p.PIN_11; | ||
| 20 | let clk = p.PIN_10; | ||
| 21 | |||
| 22 | let mut spi: Spi<'_, _, Async> = Spi::new(p.SPI1, p.DMA_CH0, p.DMA_CH1, clk, mosi, miso, spi::Config::default()); | ||
| 23 | |||
| 24 | loop { | ||
| 25 | let tx_buf = [1_u8, 2, 3, 4, 5, 6]; | ||
| 26 | let mut rx_buf = [0_u8; 6]; | ||
| 27 | spi.transfer(&mut rx_buf, &tx_buf).await.unwrap(); | ||
| 28 | info!("{:?}", rx_buf); | ||
| 29 | Timer::after(Duration::from_secs(1)).await; | ||
| 30 | } | ||
| 31 | } | ||
