aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32wba6
diff options
context:
space:
mode:
authorxoviat <[email protected]>2025-11-12 20:06:00 -0600
committerxoviat <[email protected]>2025-11-12 20:06:00 -0600
commitf0506252e21c96ce3b03e0d1c061a831d7dfe3c3 (patch)
tree839f8dac139321665abc293f907ad13d5721aede /examples/stm32wba6
parent07c918023c1b233a2f9f16eb0b654169c0379f79 (diff)
stm32: extract adc4
extract adc4 into common adc system and add anyInstance trait to cover adc4 and not adc4
Diffstat (limited to 'examples/stm32wba6')
-rw-r--r--examples/stm32wba6/src/bin/adc.rs17
1 files changed, 10 insertions, 7 deletions
diff --git a/examples/stm32wba6/src/bin/adc.rs b/examples/stm32wba6/src/bin/adc.rs
index 0887e124c..9d1f39419 100644
--- a/examples/stm32wba6/src/bin/adc.rs
+++ b/examples/stm32wba6/src/bin/adc.rs
@@ -2,7 +2,7 @@
2#![no_main] 2#![no_main]
3 3
4use defmt::*; 4use defmt::*;
5use embassy_stm32::adc::{AdcChannel, adc4}; 5use embassy_stm32::adc::{Adc, AdcChannel, SampleTime, adc4};
6use {defmt_rtt as _, panic_probe as _}; 6use {defmt_rtt as _, panic_probe as _};
7 7
8#[embassy_executor::main] 8#[embassy_executor::main]
@@ -12,11 +12,11 @@ async fn main(_spawner: embassy_executor::Spawner) {
12 let mut p = embassy_stm32::init(config); 12 let mut p = embassy_stm32::init(config);
13 13
14 // **** ADC4 init **** 14 // **** ADC4 init ****
15 let mut adc4 = adc4::Adc4::new(p.ADC4); 15 let mut adc4 = Adc::new_adc4(p.ADC4);
16 let mut adc4_pin1 = p.PA0; // A4 16 let mut adc4_pin1 = p.PA0; // A4
17 let mut adc4_pin2 = p.PA1; // A5 17 let mut adc4_pin2 = p.PA1; // A5
18 adc4.set_resolution(adc4::Resolution::BITS12); 18 adc4.set_resolution_adc4(adc4::Resolution::BITS12);
19 adc4.set_averaging(adc4::Averaging::Samples256); 19 adc4.set_averaging_adc4(adc4::Averaging::Samples256);
20 let max4 = adc4::resolution_to_max_count(adc4::Resolution::BITS12); 20 let max4 = adc4::resolution_to_max_count(adc4::Resolution::BITS12);
21 21
22 // **** ADC4 blocking read **** 22 // **** ADC4 blocking read ****
@@ -36,11 +36,14 @@ async fn main(_spawner: embassy_executor::Spawner) {
36 // The channels must be in ascending order and can't repeat for ADC4 36 // The channels must be in ascending order and can't repeat for ADC4
37 adc4.read( 37 adc4.read(
38 p.GPDMA1_CH1.reborrow(), 38 p.GPDMA1_CH1.reborrow(),
39 [&mut degraded42, &mut degraded41].into_iter(), 39 [
40 (&mut degraded42, SampleTime::CYCLES12_5),
41 (&mut degraded41, SampleTime::CYCLES12_5),
42 ]
43 .into_iter(),
40 &mut measurements, 44 &mut measurements,
41 ) 45 )
42 .await 46 .await;
43 .unwrap();
44 let volt2: f32 = 3.3 * measurements[0] as f32 / max4 as f32; 47 let volt2: f32 = 3.3 * measurements[0] as f32 / max4 as f32;
45 let volt1: f32 = 3.0 * measurements[1] as f32 / max4 as f32; 48 let volt1: f32 = 3.0 * measurements[1] as f32 / max4 as f32;
46 info!("Async read 4 pin 1 {}", volt1); 49 info!("Async read 4 pin 1 {}", volt1);