aboutsummaryrefslogtreecommitdiff
path: root/examples/rp235x/src/bin/spi.rs
diff options
context:
space:
mode:
authorCurly <[email protected]>2025-02-23 07:33:58 -0800
committerCurly <[email protected]>2025-02-23 07:33:58 -0800
commit3932835998802fc3abf7cce4f736e072858ebfd1 (patch)
tree5dd714b99bc74a03556c58809237c88691c293bb /examples/rp235x/src/bin/spi.rs
parentc3c67db93e627a4fafe5e1a1123e5cbb4abafe47 (diff)
rename `rp23` (?) folder to `rp235x`; fix `ci.sh` to use `rp235x` folder
Diffstat (limited to 'examples/rp235x/src/bin/spi.rs')
-rw-r--r--examples/rp235x/src/bin/spi.rs46
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/rp235x/src/bin/spi.rs b/examples/rp235x/src/bin/spi.rs
new file mode 100644
index 000000000..4cc4f5210
--- /dev/null
+++ b/examples/rp235x/src/bin/spi.rs
@@ -0,0 +1,46 @@
1//! This example shows how to use SPI (Serial Peripheral Interface) in the RP2040 chip.
2//!
3//! Example for resistive touch sensor in Waveshare Pico-ResTouch
4
5#![no_std]
6#![no_main]
7
8use defmt::*;
9use embassy_executor::Spawner;
10use embassy_rp::spi::Spi;
11use embassy_rp::{gpio, spi};
12use gpio::{Level, Output};
13use {defmt_rtt as _, panic_probe as _};
14
15#[embassy_executor::main]
16async fn main(_spawner: Spawner) {
17 let p = embassy_rp::init(Default::default());
18 info!("Hello World!");
19
20 // Example for resistive touch sensor in Waveshare Pico-ResTouch
21
22 let miso = p.PIN_12;
23 let mosi = p.PIN_11;
24 let clk = p.PIN_10;
25 let touch_cs = p.PIN_16;
26
27 // create SPI
28 let mut config = spi::Config::default();
29 config.frequency = 2_000_000;
30 let mut spi = Spi::new_blocking(p.SPI1, clk, mosi, miso, config);
31
32 // Configure CS
33 let mut cs = Output::new(touch_cs, Level::Low);
34
35 loop {
36 cs.set_low();
37 let mut buf = [0x90, 0x00, 0x00, 0xd0, 0x00, 0x00];
38 spi.blocking_transfer_in_place(&mut buf).unwrap();
39 cs.set_high();
40
41 let x = (buf[1] as u32) << 5 | (buf[2] as u32) >> 3;
42 let y = (buf[4] as u32) << 5 | (buf[5] as u32) >> 3;
43
44 info!("touch: {=u32} {=u32}", x, y);
45 }
46}