diff options
| -rw-r--r-- | embassy-stm32-examples/src/bin/spi.rs | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/embassy-stm32-examples/src/bin/spi.rs b/embassy-stm32-examples/src/bin/spi.rs index 308c1c682..59ba09583 100644 --- a/embassy-stm32-examples/src/bin/spi.rs +++ b/embassy-stm32-examples/src/bin/spi.rs | |||
| @@ -8,14 +8,14 @@ | |||
| 8 | #[path = "../example_common.rs"] | 8 | #[path = "../example_common.rs"] |
| 9 | mod example_common; | 9 | mod example_common; |
| 10 | 10 | ||
| 11 | use embassy_stm32::gpio::{Level, Output, Input, Pull}; | 11 | use embassy_stm32::gpio::{Input, Level, Output, Pull}; |
| 12 | use embedded_hal::digital::v2::{OutputPin, InputPin}; | 12 | use embedded_hal::digital::v2::{InputPin, OutputPin}; |
| 13 | use example_common::*; | 13 | use example_common::*; |
| 14 | 14 | ||
| 15 | use cortex_m_rt::entry; | 15 | use cortex_m_rt::entry; |
| 16 | use stm32f4::stm32f429 as pac; | 16 | use stm32f4::stm32f429 as pac; |
| 17 | //use stm32l4::stm32l4x5 as pac; | 17 | //use stm32l4::stm32l4x5 as pac; |
| 18 | use embassy_stm32::spi::{Spi, MODE_0, ByteOrder, Config}; | 18 | use embassy_stm32::spi::{ByteOrder, Config, Spi, MODE_0}; |
| 19 | use embassy_stm32::time::Hertz; | 19 | use embassy_stm32::time::Hertz; |
| 20 | use embedded_hal::blocking::spi::Transfer; | 20 | use embedded_hal::blocking::spi::Transfer; |
| 21 | 21 | ||
| @@ -48,10 +48,8 @@ fn main() -> ! { | |||
| 48 | }); | 48 | }); |
| 49 | 49 | ||
| 50 | let rc = pp.RCC.cfgr.read().sws().bits(); | 50 | let rc = pp.RCC.cfgr.read().sws().bits(); |
| 51 | info!("rcc -> {}", rc); | ||
| 52 | let p = embassy_stm32::init(Default::default()); | 51 | let p = embassy_stm32::init(Default::default()); |
| 53 | 52 | ||
| 54 | let mut led = Output::new(p.PA5, Level::High); | ||
| 55 | let mut spi = Spi::new( | 53 | let mut spi = Spi::new( |
| 56 | Hertz(16_000_000), | 54 | Hertz(16_000_000), |
| 57 | p.SPI3, | 55 | p.SPI3, |
| @@ -62,33 +60,13 @@ fn main() -> ! { | |||
| 62 | Config::default(), | 60 | Config::default(), |
| 63 | ); | 61 | ); |
| 64 | 62 | ||
| 65 | let mut cs = Output::new( p.PE0, Level::High); | 63 | let mut cs = Output::new(p.PE0, Level::High); |
| 66 | cs.set_low(); | ||
| 67 | |||
| 68 | let mut rdy = Input::new(p.PE1, Pull::Down); | ||
| 69 | let mut wake = Output::new( p.PB13, Level::Low); | ||
| 70 | let mut reset = Output::new( p.PE8, Level::Low); | ||
| 71 | |||
| 72 | wake.set_high().unwrap(); | ||
| 73 | reset.set_high().unwrap(); | ||
| 74 | 64 | ||
| 75 | loop { | 65 | loop { |
| 76 | info!("loop"); | 66 | let mut buf = [0x0A; 4]; |
| 77 | while rdy.is_low().unwrap() { | 67 | cs.set_low(); |
| 78 | info!("await ready") | ||
| 79 | } | ||
| 80 | info!("ready"); | ||
| 81 | let mut buf = [0x0A;4]; | ||
| 82 | spi.transfer(&mut buf); | 68 | spi.transfer(&mut buf); |
| 69 | cs.set_high(); | ||
| 83 | info!("xfer {=[u8]:x}", buf); | 70 | info!("xfer {=[u8]:x}", buf); |
| 84 | } | 71 | } |
| 85 | |||
| 86 | loop { | ||
| 87 | info!("high"); | ||
| 88 | led.set_high().unwrap(); | ||
| 89 | cortex_m::asm::delay(10_000_000); | ||
| 90 | info!("low"); | ||
| 91 | led.set_low().unwrap(); | ||
| 92 | cortex_m::asm::delay(10_000_000); | ||
| 93 | } | ||
| 94 | } | 72 | } |
