aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32wle5/src/bin/i2c.rs
diff options
context:
space:
mode:
authorliebman <[email protected]>2025-12-13 10:01:57 -0800
committerliebman <[email protected]>2025-12-13 10:01:57 -0800
commit67a67c7d3cd9a5e2b917b108bfdebc858a2f79a3 (patch)
treefe24d4fdd9804cecf1e0a99e88d66b629f029a5b /examples/stm32wle5/src/bin/i2c.rs
parent803b809e5dbe7651b7171917e02289b067e90dad (diff)
stm32: update stm32wle5 low powe examples
Diffstat (limited to 'examples/stm32wle5/src/bin/i2c.rs')
-rw-r--r--examples/stm32wle5/src/bin/i2c.rs23
1 files changed, 3 insertions, 20 deletions
diff --git a/examples/stm32wle5/src/bin/i2c.rs b/examples/stm32wle5/src/bin/i2c.rs
index 68c17a672..bd94c061f 100644
--- a/examples/stm32wle5/src/bin/i2c.rs
+++ b/examples/stm32wle5/src/bin/i2c.rs
@@ -40,24 +40,6 @@ async fn async_main(_spawner: Spawner) {
40 // Initialize STM32WL peripherals (use default config like wio-e5-async example) 40 // Initialize STM32WL peripherals (use default config like wio-e5-async example)
41 let p = embassy_stm32::init(config); 41 let p = embassy_stm32::init(config);
42 42
43 // start with all GPIOs as analog to reduce power consumption
44 for r in [
45 embassy_stm32::pac::GPIOA,
46 embassy_stm32::pac::GPIOB,
47 embassy_stm32::pac::GPIOC,
48 embassy_stm32::pac::GPIOH,
49 ] {
50 r.moder().modify(|w| {
51 for i in 0..16 {
52 // don't reset these if probe-rs should stay connected!
53 #[cfg(feature = "defmt-rtt")]
54 if config.enable_debug_during_sleep && r == embassy_stm32::pac::GPIOA && [13, 14].contains(&i) {
55 continue;
56 }
57 w.set_moder(i, embassy_stm32::pac::gpio::vals::Moder::ANALOG);
58 }
59 });
60 }
61 #[cfg(feature = "defmt-serial")] 43 #[cfg(feature = "defmt-serial")]
62 { 44 {
63 use embassy_stm32::mode::Blocking; 45 use embassy_stm32::mode::Blocking;
@@ -79,14 +61,15 @@ async fn async_main(_spawner: Spawner) {
79 let mut i2c = I2c::new(p.I2C2, p.PB15, p.PA15, IrqsI2C, p.DMA1_CH6, p.DMA1_CH7, { 61 let mut i2c = I2c::new(p.I2C2, p.PB15, p.PA15, IrqsI2C, p.DMA1_CH6, p.DMA1_CH7, {
80 let mut config = i2c::Config::default(); 62 let mut config = i2c::Config::default();
81 config.frequency = Hertz::khz(100); 63 config.frequency = Hertz::khz(100);
82 config.timeout = Duration::from_millis(500); 64 config.timeout = Duration::from_millis(1000);
83 config 65 config
84 }); 66 });
85 67
68 let _device_busy = low_power::DeviceBusy::new_stop2();
86 loop { 69 loop {
87 let mut buffer = [0; 2]; 70 let mut buffer = [0; 2];
88 // read the temperature register of the onboard lm75 71 // read the temperature register of the onboard lm75
89 match i2c.read(0x48, &mut buffer).await { 72 match i2c.write_read(0x48, &[0x00], &mut buffer).await {
90 Ok(_) => info!("--> {:?}", buffer), 73 Ok(_) => info!("--> {:?}", buffer),
91 Err(e) => info!("--> Error: {:?}", e), 74 Err(e) => info!("--> Error: {:?}", e),
92 } 75 }