aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-09-05 16:46:57 -0500
committerxoviat <[email protected]>2023-09-05 16:46:57 -0500
commitf5022719401ef15b02bfefadcf7e10719e48f06e (patch)
tree7c21e40361d021dbace579264f9e9792ae64e37a /examples
parente2f8bf19ea55341f274c6cb9c3650a96f4a09fe4 (diff)
stm32: add initial adc f3 impl
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f334/src/bin/adc.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/examples/stm32f334/src/bin/adc.rs b/examples/stm32f334/src/bin/adc.rs
new file mode 100644
index 000000000..729497e82
--- /dev/null
+++ b/examples/stm32f334/src/bin/adc.rs
@@ -0,0 +1,34 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5use defmt::info;
6use embassy_executor::Spawner;
7use embassy_stm32::adc::Adc;
8use embassy_stm32::rcc::{ADCClock, ADCPrescaler};
9use embassy_stm32::time::Hertz;
10use embassy_stm32::Config;
11use embassy_time::{Delay, Duration, Timer};
12use {defmt_rtt as _, panic_probe as _};
13
14#[embassy_executor::main]
15async fn main(_spawner: Spawner) -> ! {
16 let mut config = Config::default();
17 config.rcc.hse = Some(Hertz(8_000_000));
18 config.rcc.sysclk = Some(Hertz(16_000_000));
19 config.rcc.adc = Some(ADCClock::PLL(ADCPrescaler::Div1));
20
21 let mut p = embassy_stm32::init(config);
22
23 let mut adc = Adc::new(p.ADC1, &mut Delay);
24
25 let mut vrefint = adc.enable_vref(&mut Delay);
26
27 let _vref = adc.read(&mut vrefint);
28 let _pin = adc.read(&mut p.PA0);
29
30 loop {
31 info!("Hello World!");
32 Timer::after(Duration::from_secs(1)).await;
33 }
34}