Skip to content

stm32/adc_g0: adc async read with dma always uses full resolution #4428

@phycrax

Description

@phycrax

On STM32G030C8T6 with PA0 connected to VDD:

// This prints 255 as expected
let mut adc = Adc::new(p.ADC1);
adc.set_resolution(BITS8);
dbg!(adc.blocking_read(&mut p.PA0));

// This prints 4095
let mut adc = Adc::new(p.ADC1);
adc.set_resolution(BITS8);
let mut ch0 = p.PA0.degrade_adc();
let mut vals = [0; 1];
adc.read(
    p.DMA1_CH5.reborrow(),
    [
        (&mut ch0, CYCLES160_5),
    ]
    .into_iter(),
    &mut vals,
)
.await;
dbg!(vals[0]);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions