aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorHenrik Alsér <[email protected]>2022-08-30 00:30:47 +0200
committerHenrik Alsér <[email protected]>2022-09-01 15:12:43 +0200
commit07c64d902e001ab0943382e9da35f9280a5533d0 (patch)
tree7b7033da1fdbdfa1ece68fff623957c16b1cc5bb /examples
parente7d4bf258a8cc30d650d7babc80c79a672052549 (diff)
example
Diffstat (limited to 'examples')
-rw-r--r--examples/rp/src/bin/spi.rs4
-rw-r--r--examples/rp/src/bin/spi_async.rs31
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
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_rp::spi::Spi; 7use embassy_rp::spi::{Blocking, Spi};
8use embassy_rp::{gpio, spi}; 8use embassy_rp::{gpio, spi};
9use gpio::{Level, Output}; 9use gpio::{Level, Output};
10use {defmt_rtt as _, panic_probe as _}; 10use {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
5use defmt::*;
6use embassy_executor::Spawner;
7use embassy_rp::spi::{Async, Spi};
8use embassy_rp::{gpio, spi};
9use embassy_time::{Duration, Timer};
10use gpio::{Level, Output};
11use {defmt_rtt as _, panic_probe as _};
12
13#[embassy_executor::main]
14async 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}