diff options
| author | xoviat <[email protected]> | 2025-11-11 17:19:26 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-11 17:19:26 +0000 |
| commit | 0d1fc76a10863b85961a63db4a9e1e2807f35957 (patch) | |
| tree | 1ffe8a8dddec7085876adb8bfcd86c3fed22ae74 /examples | |
| parent | f078c85454f09f28a85aa834a9496b37058695e0 (diff) | |
| parent | 769941980442ada1524ee4f60f1d003735caff4b (diff) | |
Merge pull request #4866 from xoviat/adc
adc: impl. differential channels
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/stm32g4/src/bin/adc.rs | 5 | ||||
| -rw-r--r-- | examples/stm32g4/src/bin/adc_differential.rs | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/examples/stm32g4/src/bin/adc.rs b/examples/stm32g4/src/bin/adc.rs index 695f37115..94315141c 100644 --- a/examples/stm32g4/src/bin/adc.rs +++ b/examples/stm32g4/src/bin/adc.rs | |||
| @@ -30,9 +30,14 @@ async fn main(_spawner: Spawner) { | |||
| 30 | 30 | ||
| 31 | let mut adc = Adc::new(p.ADC2); | 31 | let mut adc = Adc::new(p.ADC2); |
| 32 | 32 | ||
| 33 | let mut adc_temp = Adc::new(p.ADC1); | ||
| 34 | let mut temperature = adc_temp.enable_temperature(); | ||
| 35 | |||
| 33 | loop { | 36 | loop { |
| 34 | let measured = adc.blocking_read(&mut p.PA7, SampleTime::CYCLES24_5); | 37 | let measured = adc.blocking_read(&mut p.PA7, SampleTime::CYCLES24_5); |
| 38 | let temperature = adc_temp.blocking_read(&mut temperature, SampleTime::CYCLES24_5); | ||
| 35 | info!("measured: {}", measured); | 39 | info!("measured: {}", measured); |
| 40 | info!("temperature: {}", temperature); | ||
| 36 | Timer::after_millis(500).await; | 41 | Timer::after_millis(500).await; |
| 37 | } | 42 | } |
| 38 | } | 43 | } |
diff --git a/examples/stm32g4/src/bin/adc_differential.rs b/examples/stm32g4/src/bin/adc_differential.rs index a6e2f7d33..2773723e9 100644 --- a/examples/stm32g4/src/bin/adc_differential.rs +++ b/examples/stm32g4/src/bin/adc_differential.rs | |||
| @@ -30,16 +30,16 @@ async fn main(_spawner: Spawner) { | |||
| 30 | config.rcc.mux.adc12sel = mux::Adcsel::SYS; | 30 | config.rcc.mux.adc12sel = mux::Adcsel::SYS; |
| 31 | config.rcc.sys = Sysclk::PLL1_R; | 31 | config.rcc.sys = Sysclk::PLL1_R; |
| 32 | } | 32 | } |
| 33 | let mut p = embassy_stm32::init(config); | 33 | let p = embassy_stm32::init(config); |
| 34 | 34 | ||
| 35 | let mut adc = Adc::new(p.ADC1); | 35 | let mut adc = Adc::new(p.ADC1); |
| 36 | adc.set_differential(&mut p.PA0, true); //p:pa0,n:pa1 | 36 | let mut differential_channel = (p.PA0, p.PA1); |
| 37 | 37 | ||
| 38 | // can also use | 38 | // can also use |
| 39 | // adc.set_differential_channel(1, true); | 39 | // adc.set_differential_channel(1, true); |
| 40 | info!("adc initialized"); | 40 | info!("adc initialized"); |
| 41 | loop { | 41 | loop { |
| 42 | let measured = adc.blocking_read(&mut p.PA0, SampleTime::CYCLES247_5); | 42 | let measured = adc.blocking_read(&mut differential_channel, SampleTime::CYCLES247_5); |
| 43 | info!("data: {}", measured); | 43 | info!("data: {}", measured); |
| 44 | Timer::after_millis(500).await; | 44 | Timer::after_millis(500).await; |
| 45 | } | 45 | } |
