aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32h755cm7/src/bin
diff options
context:
space:
mode:
authorDion Dokter <[email protected]>2024-07-08 13:32:23 +0200
committerDion Dokter <[email protected]>2024-07-08 13:32:23 +0200
commitb1ea90a87e5ce6b16bbc155ad30d6d3473a998bb (patch)
tree8b471551499cafb419b031f3e74ff8b693ec2367 /examples/stm32h755cm7/src/bin
parent462daeeb4927416ed817423e91adb71c0861a83d (diff)
Add H755 examples
Diffstat (limited to 'examples/stm32h755cm7/src/bin')
-rw-r--r--examples/stm32h755cm7/src/bin/blinky.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/examples/stm32h755cm7/src/bin/blinky.rs b/examples/stm32h755cm7/src/bin/blinky.rs
new file mode 100644
index 000000000..396b8c718
--- /dev/null
+++ b/examples/stm32h755cm7/src/bin/blinky.rs
@@ -0,0 +1,48 @@
1#![no_std]
2#![no_main]
3
4use defmt::*;
5use embassy_executor::Spawner;
6use embassy_stm32::gpio::{Level, Output, Speed};
7use embassy_time::Timer;
8use {defmt_rtt as _, panic_probe as _};
9
10#[embassy_executor::main]
11async fn main(_spawner: Spawner) {
12 let mut config = embassy_stm32::Config::default();
13 {
14 use embassy_stm32::rcc::*;
15 config.rcc.hsi = Some(HSIPrescaler::DIV1);
16 config.rcc.csi = true;
17 config.rcc.pll1 = Some(Pll {
18 source: PllSource::HSI,
19 prediv: PllPreDiv::DIV4,
20 mul: PllMul::MUL50,
21 divp: Some(PllDiv::DIV2),
22 divq: Some(PllDiv::DIV8), // 100mhz
23 divr: None,
24 });
25 config.rcc.sys = Sysclk::PLL1_P; // 400 Mhz
26 config.rcc.ahb_pre = AHBPrescaler::DIV2; // 200 Mhz
27 config.rcc.apb1_pre = APBPrescaler::DIV2; // 100 Mhz
28 config.rcc.apb2_pre = APBPrescaler::DIV2; // 100 Mhz
29 config.rcc.apb3_pre = APBPrescaler::DIV2; // 100 Mhz
30 config.rcc.apb4_pre = APBPrescaler::DIV2; // 100 Mhz
31 config.rcc.voltage_scale = VoltageScale::Scale1;
32 config.rcc.supply_config = SupplyConfig::DirectSMPS;
33 }
34 let p = embassy_stm32::init(config);
35 info!("Hello World!");
36
37 let mut led = Output::new(p.PB14, Level::High, Speed::Low);
38
39 loop {
40 info!("high");
41 led.set_high();
42 Timer::after_millis(500).await;
43
44 info!("low");
45 led.set_low();
46 Timer::after_millis(500).await;
47 }
48}