aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32g4/src
diff options
context:
space:
mode:
authorDaehyeok Mun <[email protected]>2023-08-20 19:31:47 -0700
committerDaehyeok Mun <[email protected]>2023-09-04 23:36:41 -0700
commit49ba9c3da2b6929c5ec1fb17d8c43c271a70eb34 (patch)
tree5f65ff9f5415a3e27985b05ada0096d62ba75a4d /examples/stm32g4/src
parentce662766be80d75b5f9294ae4b792f7db252ccd3 (diff)
initial support for STM32G4 ADC
Diffstat (limited to 'examples/stm32g4/src')
-rw-r--r--examples/stm32g4/src/bin/adc.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/examples/stm32g4/src/bin/adc.rs b/examples/stm32g4/src/bin/adc.rs
new file mode 100644
index 000000000..a792748bc
--- /dev/null
+++ b/examples/stm32g4/src/bin/adc.rs
@@ -0,0 +1,41 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5use defmt::*;
6use embassy_executor::Spawner;
7use embassy_stm32::adc::{Adc, SampleTime};
8use embassy_stm32::rcc::{AdcClockSource, ClockSrc, Pll, PllM, PllN, PllR, PllSrc};
9use embassy_stm32::Config;
10use embassy_time::{Delay, Duration, Timer};
11use {defmt_rtt as _, panic_probe as _};
12
13#[embassy_executor::main]
14async fn main(_spawner: Spawner) {
15 let mut config = Config::default();
16
17 config.rcc.pll = Some(Pll {
18 source: PllSrc::HSI16,
19 prediv_m: PllM::Div4,
20 mul_n: PllN::Mul85,
21 div_p: None,
22 div_q: None,
23 // Main system clock at 170 MHz
24 div_r: Some(PllR::Div2),
25 });
26
27 config.rcc.adc12_clock_source = AdcClockSource::SysClk;
28 config.rcc.mux = ClockSrc::PLL;
29
30 let mut p = embassy_stm32::init(config);
31 info!("Hello World!");
32
33 let mut adc = Adc::new(p.ADC2, &mut Delay);
34 adc.set_sample_time(SampleTime::Cycles32_5);
35
36 loop {
37 let measured = adc.read(&mut p.PA7);
38 info!("measured: {}", measured);
39 Timer::after(Duration::from_millis(500)).await;
40 }
41}