Skip to content

Commit 8e4b9fb

Browse files
committed
Add ADC example
1 parent 712c831 commit 8e4b9fb

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ debug = true
8888
lto = true
8989

9090

91+
[[example]]
92+
name = "adc"
93+
required-features = ["rt", "stm32l4x3"]
94+
9195
[[example]]
9296
name = "irq_button"
9397
required-features = ["rt"]

examples/adc.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#![no_main]
2+
#![no_std]
3+
4+
use panic_rtt_target as _;
5+
6+
use cortex_m_rt::entry;
7+
use rtt_target::{rprint, rprintln};
8+
use stm32l4xx_hal::{adc::ADC, delay::Delay, pac, prelude::*};
9+
10+
#[entry]
11+
fn main() -> ! {
12+
rtt_target::rtt_init_print!();
13+
rprint!("Initializing...");
14+
15+
let cp = pac::CorePeripherals::take().unwrap();
16+
let dp = pac::Peripherals::take().unwrap();
17+
18+
let mut rcc = dp.RCC.constrain();
19+
let mut flash = dp.FLASH.constrain();
20+
let mut pwr = dp.PWR.constrain(&mut rcc.apb1r1);
21+
22+
let clocks = rcc.cfgr.freeze(&mut flash.acr, &mut pwr);
23+
24+
let mut delay = Delay::new(cp.SYST, clocks);
25+
let mut adc = ADC::new(dp.ADC, &mut rcc.ahb2, &mut rcc.ccipr, &mut delay);
26+
27+
let mut gpioc = dp.GPIOC.split(&mut rcc.ahb2);
28+
let mut a1 = gpioc.pc0.into_analog(&mut gpioc.moder, &mut gpioc.pupdr);
29+
30+
rprintln!(" done.");
31+
32+
loop {
33+
let value = adc.read(&mut a1).unwrap();
34+
rprintln!("Value: {}", value);
35+
}
36+
}

0 commit comments

Comments
 (0)