Put ADC input pin into analog mode
This commit is contained in:
parent
7e9e628eb9
commit
a0b6096610
@ -236,7 +236,10 @@ impl<'d, T: Instance> Adc<'d, T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn read(&mut self, pin: &mut impl AdcPin<T>) -> u16 {
|
pub fn read<P>(&mut self, pin: &mut P) -> u16
|
||||||
|
where
|
||||||
|
P: AdcPin<T> + crate::gpio::sealed::Pin,
|
||||||
|
{
|
||||||
unsafe {
|
unsafe {
|
||||||
// A.7.2 ADC enable sequence code example
|
// A.7.2 ADC enable sequence code example
|
||||||
if T::regs().isr().read().adrdy() {
|
if T::regs().isr().read().adrdy() {
|
||||||
@ -252,6 +255,7 @@ impl<'d, T: Instance> Adc<'d, T> {
|
|||||||
|
|
||||||
T::regs().cfgr1().modify(|reg| reg.set_res(self.resolution.res()));
|
T::regs().cfgr1().modify(|reg| reg.set_res(self.resolution.res()));
|
||||||
Self::set_channel_sample_time(pin.channel(), self.sample_time);
|
Self::set_channel_sample_time(pin.channel(), self.sample_time);
|
||||||
|
pin.set_as_analog();
|
||||||
T::regs()
|
T::regs()
|
||||||
.chselr()
|
.chselr()
|
||||||
.write(|reg| reg.set_chselx(pin.channel() as usize, true));
|
.write(|reg| reg.set_chselx(pin.channel() as usize, true));
|
||||||
|
Loading…
Reference in New Issue
Block a user