stm32: update adc examples

This commit is contained in:
Andres Vahter 2024-04-10 10:49:42 +03:00
parent 68b1a840c6
commit fd901fc7e0
11 changed files with 25 additions and 26 deletions

View File

@ -6,7 +6,7 @@ use embassy_executor::Spawner;
use embassy_stm32::adc::{Adc, SampleTime}; use embassy_stm32::adc::{Adc, SampleTime};
use embassy_stm32::peripherals::ADC; use embassy_stm32::peripherals::ADC;
use embassy_stm32::{adc, bind_interrupts}; use embassy_stm32::{adc, bind_interrupts};
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
bind_interrupts!(struct Irqs { bind_interrupts!(struct Irqs {
@ -18,11 +18,11 @@ async fn main(_spawner: Spawner) {
let p = embassy_stm32::init(Default::default()); let p = embassy_stm32::init(Default::default());
info!("Hello World!"); info!("Hello World!");
let mut adc = Adc::new(p.ADC, Irqs, &mut Delay); let mut adc = Adc::new(p.ADC, Irqs);
adc.set_sample_time(SampleTime::CYCLES71_5); adc.set_sample_time(SampleTime::CYCLES71_5);
let mut pin = p.PA1; let mut pin = p.PA1;
let mut vrefint = adc.enable_vref(&mut Delay); let mut vrefint = adc.enable_vref();
let vrefint_sample = adc.read(&mut vrefint).await; let vrefint_sample = adc.read(&mut vrefint).await;
let convert_to_millivolts = |sample| { let convert_to_millivolts = |sample| {
// From https://www.st.com/resource/en/datasheet/stm32f031c6.pdf // From https://www.st.com/resource/en/datasheet/stm32f031c6.pdf

View File

@ -6,7 +6,7 @@ use embassy_executor::Spawner;
use embassy_stm32::adc::Adc; use embassy_stm32::adc::Adc;
use embassy_stm32::peripherals::ADC1; use embassy_stm32::peripherals::ADC1;
use embassy_stm32::{adc, bind_interrupts}; use embassy_stm32::{adc, bind_interrupts};
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
bind_interrupts!(struct Irqs { bind_interrupts!(struct Irqs {
@ -18,10 +18,10 @@ async fn main(_spawner: Spawner) {
let p = embassy_stm32::init(Default::default()); let p = embassy_stm32::init(Default::default());
info!("Hello World!"); info!("Hello World!");
let mut adc = Adc::new(p.ADC1, &mut Delay); let mut adc = Adc::new(p.ADC1);
let mut pin = p.PB1; let mut pin = p.PB1;
let mut vrefint = adc.enable_vref(&mut Delay); let mut vrefint = adc.enable_vref();
let vrefint_sample = adc.read(&mut vrefint).await; let vrefint_sample = adc.read(&mut vrefint).await;
let convert_to_millivolts = |sample| { let convert_to_millivolts = |sample| {
// From http://www.st.com/resource/en/datasheet/CD00161566.pdf // From http://www.st.com/resource/en/datasheet/CD00161566.pdf

View File

@ -7,7 +7,7 @@ use embassy_stm32::adc::{Adc, SampleTime};
use embassy_stm32::peripherals::ADC1; use embassy_stm32::peripherals::ADC1;
use embassy_stm32::time::mhz; use embassy_stm32::time::mhz;
use embassy_stm32::{adc, bind_interrupts, Config}; use embassy_stm32::{adc, bind_interrupts, Config};
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
bind_interrupts!(struct Irqs { bind_interrupts!(struct Irqs {
@ -38,13 +38,13 @@ async fn main(_spawner: Spawner) -> ! {
info!("create adc..."); info!("create adc...");
let mut adc = Adc::new(p.ADC1, Irqs, &mut Delay); let mut adc = Adc::new(p.ADC1, Irqs);
adc.set_sample_time(SampleTime::CYCLES601_5); adc.set_sample_time(SampleTime::CYCLES601_5);
info!("enable vrefint..."); info!("enable vrefint...");
let mut vrefint = adc.enable_vref(&mut Delay); let mut vrefint = adc.enable_vref();
let mut temperature = adc.enable_temperature(); let mut temperature = adc.enable_temperature();
loop { loop {

View File

@ -8,7 +8,7 @@ use embassy_stm32::opamp::{OpAmp, OpAmpGain};
use embassy_stm32::peripherals::ADC2; use embassy_stm32::peripherals::ADC2;
use embassy_stm32::time::mhz; use embassy_stm32::time::mhz;
use embassy_stm32::{adc, bind_interrupts, Config}; use embassy_stm32::{adc, bind_interrupts, Config};
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
bind_interrupts!(struct Irqs { bind_interrupts!(struct Irqs {
@ -39,14 +39,14 @@ async fn main(_spawner: Spawner) -> ! {
info!("create adc..."); info!("create adc...");
let mut adc = Adc::new(p.ADC2, Irqs, &mut Delay); let mut adc = Adc::new(p.ADC2, Irqs);
let mut opamp = OpAmp::new(p.OPAMP2); let mut opamp = OpAmp::new(p.OPAMP2);
adc.set_sample_time(SampleTime::CYCLES601_5); adc.set_sample_time(SampleTime::CYCLES601_5);
info!("enable vrefint..."); info!("enable vrefint...");
let mut vrefint = adc.enable_vref(&mut Delay); let mut vrefint = adc.enable_vref();
let mut temperature = adc.enable_temperature(); let mut temperature = adc.enable_temperature();
let mut buffer = opamp.buffer_ext(&mut p.PA7, &mut p.PA6, OpAmpGain::Mul1); let mut buffer = opamp.buffer_ext(&mut p.PA7, &mut p.PA6, OpAmpGain::Mul1);

View File

@ -14,7 +14,7 @@ async fn main(_spawner: Spawner) {
info!("Hello World!"); info!("Hello World!");
let mut delay = Delay; let mut delay = Delay;
let mut adc = Adc::new(p.ADC1, &mut delay); let mut adc = Adc::new(p.ADC1);
let mut pin = p.PC1; let mut pin = p.PC1;
let mut vrefint = adc.enable_vrefint(); let mut vrefint = adc.enable_vrefint();

View File

@ -4,7 +4,7 @@
use defmt::*; use defmt::*;
use embassy_executor::Spawner; use embassy_executor::Spawner;
use embassy_stm32::adc::Adc; use embassy_stm32::adc::Adc;
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
#[embassy_executor::main] #[embassy_executor::main]
@ -12,7 +12,7 @@ async fn main(_spawner: Spawner) {
let p = embassy_stm32::init(Default::default()); let p = embassy_stm32::init(Default::default());
info!("Hello World!"); info!("Hello World!");
let mut adc = Adc::new(p.ADC1, &mut Delay); let mut adc = Adc::new(p.ADC1);
let mut pin = p.PA3; let mut pin = p.PA3;
let mut vrefint = adc.enable_vrefint(); let mut vrefint = adc.enable_vrefint();

View File

@ -5,7 +5,7 @@ use defmt::*;
use embassy_executor::Spawner; use embassy_executor::Spawner;
use embassy_stm32::adc::{Adc, SampleTime}; use embassy_stm32::adc::{Adc, SampleTime};
use embassy_stm32::Config; use embassy_stm32::Config;
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
#[embassy_executor::main] #[embassy_executor::main]
@ -28,7 +28,7 @@ async fn main(_spawner: Spawner) {
let mut p = embassy_stm32::init(config); let mut p = embassy_stm32::init(config);
info!("Hello World!"); info!("Hello World!");
let mut adc = Adc::new(p.ADC2, &mut Delay); let mut adc = Adc::new(p.ADC2);
adc.set_sample_time(SampleTime::CYCLES32_5); adc.set_sample_time(SampleTime::CYCLES32_5);
loop { loop {

View File

@ -5,7 +5,7 @@ use defmt::*;
use embassy_executor::Spawner; use embassy_executor::Spawner;
use embassy_stm32::adc::{Adc, SampleTime}; use embassy_stm32::adc::{Adc, SampleTime};
use embassy_stm32::Config; use embassy_stm32::Config;
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
#[embassy_executor::main] #[embassy_executor::main]
@ -44,7 +44,7 @@ async fn main(_spawner: Spawner) {
info!("Hello World!"); info!("Hello World!");
let mut adc = Adc::new(p.ADC3, &mut Delay); let mut adc = Adc::new(p.ADC3);
adc.set_sample_time(SampleTime::CYCLES32_5); adc.set_sample_time(SampleTime::CYCLES32_5);

View File

@ -6,7 +6,7 @@ use embassy_executor::Spawner;
use embassy_stm32::adc::{Adc, SampleTime}; use embassy_stm32::adc::{Adc, SampleTime};
use embassy_stm32::peripherals::ADC; use embassy_stm32::peripherals::ADC;
use embassy_stm32::{adc, bind_interrupts}; use embassy_stm32::{adc, bind_interrupts};
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
bind_interrupts!(struct Irqs { bind_interrupts!(struct Irqs {
@ -18,11 +18,11 @@ async fn main(_spawner: Spawner) {
let p = embassy_stm32::init(Default::default()); let p = embassy_stm32::init(Default::default());
info!("Hello World!"); info!("Hello World!");
let mut adc = Adc::new(p.ADC, Irqs, &mut Delay); let mut adc = Adc::new(p.ADC, Irqs);
adc.set_sample_time(SampleTime::CYCLES79_5); adc.set_sample_time(SampleTime::CYCLES79_5);
let mut pin = p.PA1; let mut pin = p.PA1;
let mut vrefint = adc.enable_vref(&mut Delay); let mut vrefint = adc.enable_vref();
let vrefint_sample = adc.read(&mut vrefint).await; let vrefint_sample = adc.read(&mut vrefint).await;
let convert_to_millivolts = |sample| { let convert_to_millivolts = |sample| {
// From https://www.st.com/resource/en/datasheet/stm32l051c6.pdf // From https://www.st.com/resource/en/datasheet/stm32l051c6.pdf

View File

@ -4,7 +4,6 @@
use defmt::*; use defmt::*;
use embassy_stm32::adc::{Adc, Resolution}; use embassy_stm32::adc::{Adc, Resolution};
use embassy_stm32::Config; use embassy_stm32::Config;
use embassy_time::Delay;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
#[cortex_m_rt::entry] #[cortex_m_rt::entry]
@ -18,7 +17,7 @@ fn main() -> ! {
} }
let p = embassy_stm32::init(config); let p = embassy_stm32::init(config);
let mut adc = Adc::new(p.ADC1, &mut Delay); let mut adc = Adc::new(p.ADC1);
//adc.enable_vref(); //adc.enable_vref();
adc.set_resolution(Resolution::BITS8); adc.set_resolution(Resolution::BITS8);
let mut channel = p.PC0; let mut channel = p.PC0;

View File

@ -13,7 +13,7 @@ use embassy_executor::Spawner;
use embassy_stm32::adc::Adc; use embassy_stm32::adc::Adc;
use embassy_stm32::dac::{DacCh1, Value}; use embassy_stm32::dac::{DacCh1, Value};
use embassy_stm32::dma::NoDma; use embassy_stm32::dma::NoDma;
use embassy_time::{Delay, Timer}; use embassy_time::Timer;
use micromath::F32Ext; use micromath::F32Ext;
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
@ -28,7 +28,7 @@ async fn main(_spawner: Spawner) {
let mut adc_pin = unsafe { core::ptr::read(&dac_pin) }; let mut adc_pin = unsafe { core::ptr::read(&dac_pin) };
let mut dac = DacCh1::new(dac, NoDma, dac_pin); let mut dac = DacCh1::new(dac, NoDma, dac_pin);
let mut adc = Adc::new(adc, &mut Delay); let mut adc = Adc::new(adc);
#[cfg(feature = "stm32h755zi")] #[cfg(feature = "stm32h755zi")]
let normalization_factor = 256; let normalization_factor = 256;