diff options
| author | Bob McWhirter <[email protected]> | 2021-08-03 13:57:18 -0400 |
|---|---|---|
| committer | Bob McWhirter <[email protected]> | 2021-08-03 13:57:18 -0400 |
| commit | d7409d63e8fc2b69430c769c7090681cea901141 (patch) | |
| tree | 3ea823e1614ef7e7dfc87d2cb936a3ca84c5c59f /examples | |
| parent | ad62900a4004f53f7831547bcc75a564d5b8d2ad (diff) | |
Enhance Rcc configuration to be more fluentish.
Clean up H7 examples to remove all vegan HALs and PACs.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/stm32h7/Cargo.toml | 4 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/blinky.rs | 29 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/dac.rs | 43 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/spi.rs | 82 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/spi_dma.rs | 79 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/usart.rs | 31 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/usart_dma.rs | 18 |
7 files changed, 75 insertions, 211 deletions
diff --git a/examples/stm32h7/Cargo.toml b/examples/stm32h7/Cargo.toml index 8bc6781e0..f313960f9 100644 --- a/examples/stm32h7/Cargo.toml +++ b/examples/stm32h7/Cargo.toml | |||
| @@ -24,8 +24,8 @@ embassy-hal-common = {version = "0.1.0", path = "../../embassy-hal-common" } | |||
| 24 | embassy-net = { path = "../../embassy-net", default-features = false, features = ["defmt-debug", "defmt", "tcp", "medium-ethernet", "pool-16"] } | 24 | embassy-net = { path = "../../embassy-net", default-features = false, features = ["defmt-debug", "defmt", "tcp", "medium-ethernet", "pool-16"] } |
| 25 | stm32-metapac = { path = "../../stm32-metapac", features = ["stm32h743zi"] } | 25 | stm32-metapac = { path = "../../stm32-metapac", features = ["stm32h743zi"] } |
| 26 | embassy-macros = { path = "../../embassy-macros" } | 26 | embassy-macros = { path = "../../embassy-macros" } |
| 27 | stm32h7 = { version = "0.13", features = ["stm32h743"]} | 27 | #stm32h7 = { version = "0.13", features = ["stm32h743"]} |
| 28 | stm32h7xx-hal = { version = "0.9.0", features = ["stm32h743"] } | 28 | #stm32h7xx-hal = { version = "0.9.0", features = ["stm32h743"] } |
| 29 | 29 | ||
| 30 | defmt = "0.2.0" | 30 | defmt = "0.2.0" |
| 31 | defmt-rtt = "0.2.0" | 31 | defmt-rtt = "0.2.0" |
diff --git a/examples/stm32h7/src/bin/blinky.rs b/examples/stm32h7/src/bin/blinky.rs index 54e139e79..3db265091 100644 --- a/examples/stm32h7/src/bin/blinky.rs +++ b/examples/stm32h7/src/bin/blinky.rs | |||
| @@ -13,38 +13,13 @@ use embedded_hal::digital::v2::OutputPin; | |||
| 13 | use example_common::*; | 13 | use example_common::*; |
| 14 | 14 | ||
| 15 | use cortex_m_rt::entry; | 15 | use cortex_m_rt::entry; |
| 16 | use stm32h7::stm32h743 as pac; | 16 | use embassy_stm32::dbgmcu::Dbgmcu; |
| 17 | |||
| 18 | use hal::prelude::*; | ||
| 19 | use stm32h7xx_hal as hal; | ||
| 20 | 17 | ||
| 21 | #[entry] | 18 | #[entry] |
| 22 | fn main() -> ! { | 19 | fn main() -> ! { |
| 23 | info!("Hello World!"); | 20 | info!("Hello World!"); |
| 24 | 21 | ||
| 25 | let pp = pac::Peripherals::take().unwrap(); | 22 | unsafe { Dbgmcu::enable_all() }; |
| 26 | |||
| 27 | let pwrcfg = pp.PWR.constrain().freeze(); | ||
| 28 | |||
| 29 | let rcc = pp.RCC.constrain(); | ||
| 30 | |||
| 31 | rcc.sys_ck(96.mhz()) | ||
| 32 | .pclk1(48.mhz()) | ||
| 33 | .pclk2(48.mhz()) | ||
| 34 | .pclk3(48.mhz()) | ||
| 35 | .pclk4(48.mhz()) | ||
| 36 | .pll1_q_ck(48.mhz()) | ||
| 37 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 38 | |||
| 39 | let pp = unsafe { pac::Peripherals::steal() }; | ||
| 40 | |||
| 41 | pp.DBGMCU.cr.modify(|_, w| { | ||
| 42 | w.dbgsleep_d1().set_bit(); | ||
| 43 | w.dbgstby_d1().set_bit(); | ||
| 44 | w.dbgstop_d1().set_bit(); | ||
| 45 | w.d1dbgcken().set_bit(); | ||
| 46 | w | ||
| 47 | }); | ||
| 48 | 23 | ||
| 49 | let p = embassy_stm32::init(Default::default()); | 24 | let p = embassy_stm32::init(Default::default()); |
| 50 | 25 | ||
diff --git a/examples/stm32h7/src/bin/dac.rs b/examples/stm32h7/src/bin/dac.rs index 330f69aa1..f1df5425d 100644 --- a/examples/stm32h7/src/bin/dac.rs +++ b/examples/stm32h7/src/bin/dac.rs | |||
| @@ -13,44 +13,24 @@ use embassy_stm32::gpio::NoPin; | |||
| 13 | use example_common::*; | 13 | use example_common::*; |
| 14 | 14 | ||
| 15 | use cortex_m_rt::entry; | 15 | use cortex_m_rt::entry; |
| 16 | use embassy_stm32::Config; | ||
| 17 | use embassy_stm32::rcc; | ||
| 16 | use embassy_stm32::dac::{Channel, Dac, Value}; | 18 | use embassy_stm32::dac::{Channel, Dac, Value}; |
| 17 | use stm32h7::stm32h743 as pac; | 19 | use embassy_stm32::time::U32Ext; |
| 18 | use stm32h7xx_hal::prelude::*; | ||
| 19 | 20 | ||
| 20 | #[entry] | 21 | #[entry] |
| 21 | fn main() -> ! { | 22 | fn main() -> ! { |
| 22 | info!("Hello World, dude!"); | 23 | info!("Hello World, dude!"); |
| 23 | 24 | ||
| 24 | let pp = pac::Peripherals::take().unwrap(); | 25 | let p = embassy_stm32::init(Config::default().rcc( |
| 26 | rcc::Config::default() | ||
| 27 | .sys_ck(400.mhz()) | ||
| 28 | .pll1_q(100.mhz()) | ||
| 29 | )); | ||
| 25 | 30 | ||
| 26 | let pwrcfg = pp.PWR.constrain().freeze(); | 31 | unsafe { |
| 27 | 32 | Dbgmcu::enable_all(); | |
| 28 | let rcc = pp.RCC.constrain(); | 33 | } |
| 29 | |||
| 30 | rcc.sys_ck(96.mhz()) | ||
| 31 | .pclk1(48.mhz()) | ||
| 32 | .pclk2(48.mhz()) | ||
| 33 | .pclk3(48.mhz()) | ||
| 34 | .pclk4(48.mhz()) | ||
| 35 | .pll1_q_ck(48.mhz()) | ||
| 36 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 37 | |||
| 38 | let pp = unsafe { pac::Peripherals::steal() }; | ||
| 39 | |||
| 40 | pp.DBGMCU.cr.modify(|_, w| { | ||
| 41 | w.dbgsleep_d1().set_bit(); | ||
| 42 | w.dbgstby_d1().set_bit(); | ||
| 43 | w.dbgstop_d1().set_bit(); | ||
| 44 | w.d1dbgcken().set_bit(); | ||
| 45 | w | ||
| 46 | }); | ||
| 47 | |||
| 48 | pp.RCC.apb1lenr.modify(|_, w| { | ||
| 49 | w.dac12en().set_bit(); | ||
| 50 | w | ||
| 51 | }); | ||
| 52 | |||
| 53 | let p = embassy_stm32::init(Default::default()); | ||
| 54 | 34 | ||
| 55 | let mut dac = Dac::new(p.DAC1, p.PA4, NoPin); | 35 | let mut dac = Dac::new(p.DAC1, p.PA4, NoPin); |
| 56 | 36 | ||
| @@ -63,6 +43,7 @@ fn main() -> ! { | |||
| 63 | } | 43 | } |
| 64 | 44 | ||
| 65 | use micromath::F32Ext; | 45 | use micromath::F32Ext; |
| 46 | use embassy_stm32::dbgmcu::Dbgmcu; | ||
| 66 | 47 | ||
| 67 | fn to_sine_wave(v: u8) -> u8 { | 48 | fn to_sine_wave(v: u8) -> u8 { |
| 68 | if v >= 128 { | 49 | if v >= 128 { |
diff --git a/examples/stm32h7/src/bin/spi.rs b/examples/stm32h7/src/bin/spi.rs index ac483a311..ee11d32ec 100644 --- a/examples/stm32h7/src/bin/spi.rs +++ b/examples/stm32h7/src/bin/spi.rs | |||
| @@ -12,35 +12,23 @@ mod example_common; | |||
| 12 | use core::fmt::Write; | 12 | use core::fmt::Write; |
| 13 | use embassy::executor::Executor; | 13 | use embassy::executor::Executor; |
| 14 | use embassy::time::Clock; | 14 | use embassy::time::Clock; |
| 15 | use embassy_stm32::Config; | ||
| 15 | use embassy::util::Forever; | 16 | use embassy::util::Forever; |
| 16 | use embassy_stm32::dma::NoDma; | 17 | use embassy_stm32::dma::NoDma; |
| 18 | use embassy_stm32::spi; | ||
| 19 | use embassy_stm32::rcc; | ||
| 17 | use example_common::*; | 20 | use example_common::*; |
| 18 | use embedded_hal::blocking::spi::Transfer; | 21 | use embedded_hal::blocking::spi::Transfer; |
| 19 | 22 | ||
| 20 | use hal::prelude::*; | ||
| 21 | use stm32h7xx_hal as hal; | ||
| 22 | |||
| 23 | use cortex_m_rt::entry; | 23 | use cortex_m_rt::entry; |
| 24 | use stm32h7::stm32h743 as pac; | ||
| 25 | use heapless::String; | 24 | use heapless::String; |
| 26 | use embassy_stm32::spi::{Spi, Config}; | 25 | use embassy_stm32::time::U32Ext; |
| 27 | use embassy_stm32::time::Hertz; | 26 | use embassy_stm32::peripherals::SPI3; |
| 27 | use embassy_stm32::dbgmcu::Dbgmcu; | ||
| 28 | use core::str::from_utf8; | ||
| 28 | 29 | ||
| 29 | #[embassy::task] | 30 | #[embassy::task] |
| 30 | async fn main_task() { | 31 | async fn main_task(mut spi: spi::Spi<'static, SPI3, NoDma, NoDma>) { |
| 31 | let p = embassy_stm32::init(Default::default()); | ||
| 32 | |||
| 33 | let mut spi = Spi::new( | ||
| 34 | p.SPI3, | ||
| 35 | p.PB3, | ||
| 36 | p.PB5, | ||
| 37 | p.PB4, | ||
| 38 | NoDma, | ||
| 39 | NoDma, | ||
| 40 | Hertz(1_000_000), | ||
| 41 | Config::default(), | ||
| 42 | ); | ||
| 43 | |||
| 44 | for n in 0u32.. { | 32 | for n in 0u32.. { |
| 45 | let mut write: String<128> = String::new(); | 33 | let mut write: String<128> = String::new(); |
| 46 | core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap(); | 34 | core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap(); |
| @@ -50,7 +38,7 @@ async fn main_task() { | |||
| 50 | defmt::panic!("crap"); | 38 | defmt::panic!("crap"); |
| 51 | } | 39 | } |
| 52 | } | 40 | } |
| 53 | info!("read via spi: {}", write.as_bytes()); | 41 | info!("read via spi: {}", from_utf8(write.as_bytes()).unwrap()); |
| 54 | } | 42 | } |
| 55 | } | 43 | } |
| 56 | 44 | ||
| @@ -68,45 +56,31 @@ static EXECUTOR: Forever<Executor> = Forever::new(); | |||
| 68 | fn main() -> ! { | 56 | fn main() -> ! { |
| 69 | info!("Hello World!"); | 57 | info!("Hello World!"); |
| 70 | 58 | ||
| 71 | let pp = pac::Peripherals::take().unwrap(); | 59 | unsafe { |
| 72 | 60 | Dbgmcu::enable_all(); | |
| 73 | let pwrcfg = pp.PWR.constrain().freeze(); | 61 | } |
| 74 | |||
| 75 | let rcc = pp.RCC.constrain(); | ||
| 76 | |||
| 77 | rcc.sys_ck(96.mhz()) | ||
| 78 | .pclk1(48.mhz()) | ||
| 79 | .pclk2(48.mhz()) | ||
| 80 | .pclk3(48.mhz()) | ||
| 81 | .pclk4(48.mhz()) | ||
| 82 | .pll1_q_ck(48.mhz()) | ||
| 83 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 84 | |||
| 85 | let pp = unsafe { pac::Peripherals::steal() }; | ||
| 86 | 62 | ||
| 87 | pp.DBGMCU.cr.modify(|_, w| { | 63 | let p = embassy_stm32::init(Config::default().rcc( |
| 88 | w.dbgsleep_d1().set_bit(); | 64 | rcc::Config::default() |
| 89 | w.dbgstby_d1().set_bit(); | 65 | .sys_ck(400.mhz()) |
| 90 | w.dbgstop_d1().set_bit(); | 66 | .pll1_q(100.mhz()) |
| 91 | w.d1dbgcken().set_bit(); | 67 | )); |
| 92 | w | ||
| 93 | }); | ||
| 94 | 68 | ||
| 95 | pp.RCC.ahb4enr.modify(|_, w| { | 69 | let spi = spi::Spi::new( |
| 96 | w.gpioaen().set_bit(); | 70 | p.SPI3, |
| 97 | w.gpioben().set_bit(); | 71 | p.PB3, |
| 98 | w.gpiocen().set_bit(); | 72 | p.PB5, |
| 99 | w.gpioden().set_bit(); | 73 | p.PB4, |
| 100 | w.gpioeen().set_bit(); | 74 | NoDma, |
| 101 | w.gpiofen().set_bit(); | 75 | NoDma, |
| 102 | w | 76 | 1.mhz(), |
| 103 | }); | 77 | spi::Config::default(), |
| 78 | ); | ||
| 104 | 79 | ||
| 105 | unsafe { embassy::time::set_clock(&ZeroClock) }; | 80 | unsafe { embassy::time::set_clock(&ZeroClock) }; |
| 106 | |||
| 107 | let executor = EXECUTOR.put(Executor::new()); | 81 | let executor = EXECUTOR.put(Executor::new()); |
| 108 | 82 | ||
| 109 | executor.run(|spawner| { | 83 | executor.run(|spawner| { |
| 110 | unwrap!(spawner.spawn(main_task())); | 84 | unwrap!(spawner.spawn(main_task(spi))); |
| 111 | }) | 85 | }) |
| 112 | } | 86 | } |
diff --git a/examples/stm32h7/src/bin/spi_dma.rs b/examples/stm32h7/src/bin/spi_dma.rs index 9dbfd0960..eb213f650 100644 --- a/examples/stm32h7/src/bin/spi_dma.rs +++ b/examples/stm32h7/src/bin/spi_dma.rs | |||
| @@ -11,34 +11,22 @@ mod example_common; | |||
| 11 | use core::fmt::Write; | 11 | use core::fmt::Write; |
| 12 | use embassy::executor::Executor; | 12 | use embassy::executor::Executor; |
| 13 | use embassy::time::Clock; | 13 | use embassy::time::Clock; |
| 14 | use embassy_stm32::time::U32Ext; | ||
| 14 | use embassy::util::Forever; | 15 | use embassy::util::Forever; |
| 15 | use example_common::*; | 16 | use example_common::*; |
| 16 | use embassy_traits::spi::FullDuplex; | 17 | use embassy_traits::spi::FullDuplex; |
| 17 | 18 | ||
| 18 | use hal::prelude::*; | ||
| 19 | use stm32h7xx_hal as hal; | ||
| 20 | |||
| 21 | use cortex_m_rt::entry; | 19 | use cortex_m_rt::entry; |
| 22 | use stm32h7::stm32h743 as pac; | ||
| 23 | use heapless::String; | 20 | use heapless::String; |
| 24 | use embassy_stm32::spi::{Spi, Config}; | 21 | use embassy_stm32::spi; |
| 25 | use embassy_stm32::time::Hertz; | 22 | use embassy_stm32::Config; |
| 26 | use core::str::from_utf8; | 23 | use core::str::from_utf8; |
| 24 | use embassy_stm32::dbgmcu::Dbgmcu; | ||
| 25 | use embassy_stm32::rcc; | ||
| 26 | use embassy_stm32::peripherals::{DMA1_CH4, DMA1_CH3, SPI3}; | ||
| 27 | 27 | ||
| 28 | #[embassy::task] | 28 | #[embassy::task] |
| 29 | async fn main_task() { | 29 | async fn main_task(mut spi: spi::Spi<'static, SPI3, DMA1_CH3, DMA1_CH4>) { |
| 30 | let p = embassy_stm32::init(Default::default()); | ||
| 31 | |||
| 32 | let mut spi = Spi::new( | ||
| 33 | p.SPI3, | ||
| 34 | p.PB3, | ||
| 35 | p.PB5, | ||
| 36 | p.PB4, | ||
| 37 | p.DMA1_CH3, | ||
| 38 | p.DMA1_CH4, | ||
| 39 | Hertz(1_000_000), | ||
| 40 | Config::default(), | ||
| 41 | ); | ||
| 42 | 30 | ||
| 43 | for n in 0u32.. { | 31 | for n in 0u32.. { |
| 44 | let mut write: String<128> = String::new(); | 32 | let mut write: String<128> = String::new(); |
| @@ -61,49 +49,36 @@ impl Clock for ZeroClock { | |||
| 61 | 49 | ||
| 62 | static EXECUTOR: Forever<Executor> = Forever::new(); | 50 | static EXECUTOR: Forever<Executor> = Forever::new(); |
| 63 | 51 | ||
| 52 | |||
| 64 | #[entry] | 53 | #[entry] |
| 65 | fn main() -> ! { | 54 | fn main() -> ! { |
| 66 | info!("Hello World!"); | 55 | info!("Hello World!"); |
| 67 | 56 | ||
| 68 | let pp = pac::Peripherals::take().unwrap(); | 57 | unsafe { |
| 69 | 58 | Dbgmcu::enable_all(); | |
| 70 | let pwrcfg = pp.PWR.constrain().freeze(); | 59 | } |
| 71 | |||
| 72 | let rcc = pp.RCC.constrain(); | ||
| 73 | |||
| 74 | rcc.sys_ck(96.mhz()) | ||
| 75 | .pclk1(48.mhz()) | ||
| 76 | .pclk2(48.mhz()) | ||
| 77 | .pclk3(48.mhz()) | ||
| 78 | .pclk4(48.mhz()) | ||
| 79 | .pll1_q_ck(48.mhz()) | ||
| 80 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 81 | |||
| 82 | let pp = unsafe { pac::Peripherals::steal() }; | ||
| 83 | 60 | ||
| 84 | pp.DBGMCU.cr.modify(|_, w| { | 61 | let p = embassy_stm32::init(Config::default().rcc( |
| 85 | w.dbgsleep_d1().set_bit(); | 62 | rcc::Config::default() |
| 86 | w.dbgstby_d1().set_bit(); | 63 | .sys_ck(400.mhz()) |
| 87 | w.dbgstop_d1().set_bit(); | 64 | .pll1_q(100.mhz()) |
| 88 | w.d1dbgcken().set_bit(); | 65 | )); |
| 89 | w | ||
| 90 | }); | ||
| 91 | 66 | ||
| 92 | pp.RCC.ahb4enr.modify(|_, w| { | 67 | let spi = spi::Spi::new( |
| 93 | w.gpioaen().set_bit(); | 68 | p.SPI3, |
| 94 | w.gpioben().set_bit(); | 69 | p.PB3, |
| 95 | w.gpiocen().set_bit(); | 70 | p.PB5, |
| 96 | w.gpioden().set_bit(); | 71 | p.PB4, |
| 97 | w.gpioeen().set_bit(); | 72 | p.DMA1_CH3, |
| 98 | w.gpiofen().set_bit(); | 73 | p.DMA1_CH4, |
| 99 | w | 74 | 1.mhz(), |
| 100 | }); | 75 | spi::Config::default(), |
| 76 | ); | ||
| 101 | 77 | ||
| 102 | unsafe { embassy::time::set_clock(&ZeroClock) }; | 78 | unsafe { embassy::time::set_clock(&ZeroClock) }; |
| 103 | |||
| 104 | let executor = EXECUTOR.put(Executor::new()); | 79 | let executor = EXECUTOR.put(Executor::new()); |
| 105 | 80 | ||
| 106 | executor.run(|spawner| { | 81 | executor.run(|spawner| { |
| 107 | unwrap!(spawner.spawn(main_task())); | 82 | unwrap!(spawner.spawn(main_task(spi))); |
| 108 | }) | 83 | }) |
| 109 | } | 84 | } |
diff --git a/examples/stm32h7/src/bin/usart.rs b/examples/stm32h7/src/bin/usart.rs index 11e04f33c..ce33f201a 100644 --- a/examples/stm32h7/src/bin/usart.rs +++ b/examples/stm32h7/src/bin/usart.rs | |||
| @@ -16,11 +16,8 @@ use embassy_stm32::dma::NoDma; | |||
| 16 | use embassy_stm32::usart::{Config, Uart}; | 16 | use embassy_stm32::usart::{Config, Uart}; |
| 17 | use example_common::*; | 17 | use example_common::*; |
| 18 | 18 | ||
| 19 | use hal::prelude::*; | ||
| 20 | use stm32h7xx_hal as hal; | ||
| 21 | |||
| 22 | use cortex_m_rt::entry; | 19 | use cortex_m_rt::entry; |
| 23 | use stm32h7::stm32h743 as pac; | 20 | use embassy_stm32::dbgmcu::Dbgmcu; |
| 24 | 21 | ||
| 25 | #[embassy::task] | 22 | #[embassy::task] |
| 26 | async fn main_task() { | 23 | async fn main_task() { |
| @@ -53,29 +50,9 @@ static EXECUTOR: Forever<Executor> = Forever::new(); | |||
| 53 | fn main() -> ! { | 50 | fn main() -> ! { |
| 54 | info!("Hello World!"); | 51 | info!("Hello World!"); |
| 55 | 52 | ||
| 56 | let pp = pac::Peripherals::take().unwrap(); | 53 | unsafe { |
| 57 | 54 | Dbgmcu::enable_all(); | |
| 58 | let pwrcfg = pp.PWR.constrain().freeze(); | 55 | } |
| 59 | |||
| 60 | let rcc = pp.RCC.constrain(); | ||
| 61 | |||
| 62 | rcc.sys_ck(96.mhz()) | ||
| 63 | .pclk1(48.mhz()) | ||
| 64 | .pclk2(48.mhz()) | ||
| 65 | .pclk3(48.mhz()) | ||
| 66 | .pclk4(48.mhz()) | ||
| 67 | .pll1_q_ck(48.mhz()) | ||
| 68 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 69 | |||
| 70 | let pp = unsafe { pac::Peripherals::steal() }; | ||
| 71 | |||
| 72 | pp.DBGMCU.cr.modify(|_, w| { | ||
| 73 | w.dbgsleep_d1().set_bit(); | ||
| 74 | w.dbgstby_d1().set_bit(); | ||
| 75 | w.dbgstop_d1().set_bit(); | ||
| 76 | w.d1dbgcken().set_bit(); | ||
| 77 | w | ||
| 78 | }); | ||
| 79 | 56 | ||
| 80 | unsafe { embassy::time::set_clock(&ZeroClock) }; | 57 | unsafe { embassy::time::set_clock(&ZeroClock) }; |
| 81 | 58 | ||
diff --git a/examples/stm32h7/src/bin/usart_dma.rs b/examples/stm32h7/src/bin/usart_dma.rs index fe59a2162..553cf506f 100644 --- a/examples/stm32h7/src/bin/usart_dma.rs +++ b/examples/stm32h7/src/bin/usart_dma.rs | |||
| @@ -18,12 +18,8 @@ use embassy_stm32::usart::{Config, Uart}; | |||
| 18 | use embassy_traits::uart::Write as _Write; | 18 | use embassy_traits::uart::Write as _Write; |
| 19 | use example_common::*; | 19 | use example_common::*; |
| 20 | 20 | ||
| 21 | use hal::prelude::*; | ||
| 22 | use stm32h7xx_hal as hal; | ||
| 23 | |||
| 24 | use cortex_m_rt::entry; | 21 | use cortex_m_rt::entry; |
| 25 | use heapless::String; | 22 | use heapless::String; |
| 26 | use stm32h7::stm32h743 as pac; | ||
| 27 | 23 | ||
| 28 | #[embassy::task] | 24 | #[embassy::task] |
| 29 | async fn main_task() { | 25 | async fn main_task() { |
| @@ -56,20 +52,6 @@ static EXECUTOR: Forever<Executor> = Forever::new(); | |||
| 56 | fn main() -> ! { | 52 | fn main() -> ! { |
| 57 | info!("Hello World!"); | 53 | info!("Hello World!"); |
| 58 | 54 | ||
| 59 | let pp = pac::Peripherals::take().unwrap(); | ||
| 60 | |||
| 61 | let pwrcfg = pp.PWR.constrain().freeze(); | ||
| 62 | |||
| 63 | let rcc = pp.RCC.constrain(); | ||
| 64 | |||
| 65 | rcc.sys_ck(96.mhz()) | ||
| 66 | .pclk1(48.mhz()) | ||
| 67 | .pclk2(48.mhz()) | ||
| 68 | .pclk3(48.mhz()) | ||
| 69 | .pclk4(48.mhz()) | ||
| 70 | .pll1_q_ck(48.mhz()) | ||
| 71 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 72 | |||
| 73 | unsafe { | 55 | unsafe { |
| 74 | Dbgmcu::enable_all(); | 56 | Dbgmcu::enable_all(); |
| 75 | } | 57 | } |
