Merge pull request #313 from timokroeger/cleanup-gpio-clocks
stm32 examples: No need to enable GPIO clocks manually
This commit is contained in:
		| @@ -8,8 +8,8 @@ | ||||
|  | ||||
| #[path = "../example_common.rs"] | ||||
| mod example_common; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::gpio::{Level, Output, Speed}; | ||||
| use embassy_stm32::pac; | ||||
| use embedded_hal::digital::v2::OutputPin; | ||||
| use example_common::*; | ||||
|  | ||||
| @@ -20,20 +20,7 @@ fn main() -> ! { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     unsafe { | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb1enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|         Dbgmcu::enable_all(); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|   | ||||
| @@ -9,8 +9,8 @@ | ||||
| #[path = "../example_common.rs"] | ||||
| mod example_common; | ||||
| use cortex_m_rt::entry; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; | ||||
| use embassy_stm32::pac; | ||||
| use embedded_hal::digital::v2::{InputPin, OutputPin}; | ||||
| use example_common::*; | ||||
|  | ||||
| @@ -19,20 +19,7 @@ fn main() -> ! { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     unsafe { | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb1enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|         Dbgmcu::enable_all(); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|   | ||||
| @@ -10,6 +10,7 @@ | ||||
| mod example_common; | ||||
| use embassy::executor::Executor; | ||||
| use embassy::util::Forever; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::exti::ExtiInput; | ||||
| use embassy_stm32::gpio::{Input, Pull}; | ||||
| use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge}; | ||||
| @@ -42,20 +43,7 @@ fn main() -> ! { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     unsafe { | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb1enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|         Dbgmcu::enable_all(); | ||||
|  | ||||
|         // EXTI clock | ||||
|         pac::RCC.apb2enr().modify(|w| { | ||||
|   | ||||
| @@ -14,11 +14,10 @@ use embedded_hal::digital::v2::OutputPin; | ||||
| use example_common::*; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| use embassy_stm32::pac; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::spi::{Config, Spi}; | ||||
| use embassy_stm32::time::Hertz; | ||||
| use embedded_hal::blocking::spi::Transfer; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
|  | ||||
| #[entry] | ||||
| fn main() -> ! { | ||||
| @@ -26,15 +25,6 @@ fn main() -> ! { | ||||
|  | ||||
|     unsafe { | ||||
|         Dbgmcu::enable_all(); | ||||
|  | ||||
|         pac::RCC.ahb1enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|   | ||||
| @@ -11,12 +11,12 @@ mod example_common; | ||||
| use cortex_m::prelude::_embedded_hal_blocking_serial_Write; | ||||
| use embassy::executor::Executor; | ||||
| use embassy::util::Forever; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::dma::NoDma; | ||||
| use embassy_stm32::usart::{Config, Uart}; | ||||
| use example_common::*; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| use embassy_stm32::pac; | ||||
|  | ||||
| #[embassy::task] | ||||
| async fn main_task() { | ||||
| @@ -42,20 +42,7 @@ fn main() -> ! { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     unsafe { | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb1enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|         Dbgmcu::enable_all(); | ||||
|     } | ||||
|  | ||||
|     let executor = EXECUTOR.put(Executor::new()); | ||||
|   | ||||
| @@ -12,8 +12,8 @@ use core::fmt::Write; | ||||
| use cortex_m_rt::entry; | ||||
| use embassy::executor::Executor; | ||||
| use embassy::util::Forever; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::dma::NoDma; | ||||
| use embassy_stm32::pac; | ||||
| use embassy_stm32::usart::{Config, Uart}; | ||||
| use embassy_traits::uart::Write as _; | ||||
| use example_common::*; | ||||
| @@ -42,20 +42,7 @@ fn main() -> ! { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     unsafe { | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|     }); | ||||
|  | ||||
|         pac::RCC.ahb1enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|     }); | ||||
|         Dbgmcu::enable_all(); | ||||
|     } | ||||
|  | ||||
|     let executor = EXECUTOR.put(Executor::new()); | ||||
|   | ||||
| @@ -28,8 +28,7 @@ fn main() -> ! { | ||||
|  | ||||
|     let rcc = pp.RCC.constrain(); | ||||
|  | ||||
|     rcc | ||||
|         .sys_ck(96.mhz()) | ||||
|     rcc.sys_ck(96.mhz()) | ||||
|         .pclk1(48.mhz()) | ||||
|         .pclk2(48.mhz()) | ||||
|         .pclk3(48.mhz()) | ||||
| @@ -47,16 +46,6 @@ fn main() -> ! { | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.ahb4enr.modify(|_, w| { | ||||
|         w.gpioaen().set_bit(); | ||||
|         w.gpioben().set_bit(); | ||||
|         w.gpiocen().set_bit(); | ||||
|         w.gpioden().set_bit(); | ||||
|         w.gpioeen().set_bit(); | ||||
|         w.gpiofen().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|  | ||||
|     let mut led = Output::new(p.PB14, Level::High, Speed::Low); | ||||
|   | ||||
| @@ -13,9 +13,9 @@ use embassy_stm32::gpio::NoPin; | ||||
| use example_common::*; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| use embassy_stm32::dac::{Channel, Dac, Value}; | ||||
| use stm32h7::stm32h743 as pac; | ||||
| use stm32h7xx_hal::prelude::*; | ||||
| use embassy_stm32::dac::{Dac, Value, Channel}; | ||||
|  | ||||
| #[entry] | ||||
| fn main() -> ! { | ||||
| @@ -23,13 +23,11 @@ fn main() -> ! { | ||||
|  | ||||
|     let pp = pac::Peripherals::take().unwrap(); | ||||
|  | ||||
|     let pwrcfg = pp.PWR.constrain() | ||||
|         .freeze(); | ||||
|     let pwrcfg = pp.PWR.constrain().freeze(); | ||||
|  | ||||
|     let rcc = pp.RCC.constrain(); | ||||
|  | ||||
|     rcc | ||||
|         .sys_ck(96.mhz()) | ||||
|     rcc.sys_ck(96.mhz()) | ||||
|         .pclk1(48.mhz()) | ||||
|         .pclk2(48.mhz()) | ||||
|         .pclk3(48.mhz()) | ||||
| @@ -47,21 +45,11 @@ fn main() -> ! { | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.apb1lenr.modify(|_, w|{ | ||||
|     pp.RCC.apb1lenr.modify(|_, w| { | ||||
|         w.dac12en().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.ahb4enr.modify(|_, w| { | ||||
|         w.gpioaen().set_bit(); | ||||
|         w.gpioben().set_bit(); | ||||
|         w.gpiocen().set_bit(); | ||||
|         w.gpioden().set_bit(); | ||||
|         w.gpioeen().set_bit(); | ||||
|         w.gpiofen().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|  | ||||
|     let mut dac = Dac::new(p.DAC1, p.PA4, NoPin); | ||||
| @@ -79,11 +67,11 @@ use micromath::F32Ext; | ||||
| fn to_sine_wave(v: u8) -> u8 { | ||||
|     if v >= 128 { | ||||
|         // top half | ||||
|         let r = 3.14 * ( (v-128) as f32/ 128.0) ; | ||||
|         let r = 3.14 * ((v - 128) as f32 / 128.0); | ||||
|         (r.sin() * 128.0 + 127.0) as u8 | ||||
|     } else { | ||||
|         // bottom half | ||||
|         let r = 3.14 + 3.14 * (v as f32/ 128.0); | ||||
|         let r = 3.14 + 3.14 * (v as f32 / 128.0); | ||||
|         (r.sin() * 128.0 + 127.0) as u8 | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -106,8 +106,6 @@ static NET_RESOURCES: Forever<StackResources<1, 2, 8>> = Forever::new(); | ||||
|  | ||||
| #[entry] | ||||
| fn main() -> ! { | ||||
|     use stm32_metapac::RCC; | ||||
|  | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     info!("Setup RCC..."); | ||||
| @@ -123,16 +121,6 @@ fn main() -> ! { | ||||
|     let mut rcc = Rcc::new(&mut p.RCC, RccConfig::default()); | ||||
|     rcc.enable_debug_wfe(&mut p.DBGMCU, true); | ||||
|  | ||||
|     unsafe { | ||||
|         RCC.ahb4enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioien(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let rtc_int = interrupt_take!(TIM2); | ||||
|     let rtc = TIMER_RTC.put(Clock::new(p.TIM2, rtc_int)); | ||||
|     rtc.start(); | ||||
|   | ||||
| @@ -77,16 +77,6 @@ fn main() -> ! { | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.ahb4enr.modify(|_, w| { | ||||
|         w.gpioaen().set_bit(); | ||||
|         w.gpioben().set_bit(); | ||||
|         w.gpiocen().set_bit(); | ||||
|         w.gpioden().set_bit(); | ||||
|         w.gpioeen().set_bit(); | ||||
|         w.gpiofen().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     unsafe { embassy::time::set_clock(&ZeroClock) }; | ||||
|  | ||||
|     let executor = EXECUTOR.put(Executor::new()); | ||||
|   | ||||
| @@ -12,18 +12,18 @@ use core::fmt::Write; | ||||
| use embassy::executor::Executor; | ||||
| use embassy::time::Clock; | ||||
| use embassy::util::Forever; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use embassy_stm32::dma::NoDma; | ||||
| use embassy_stm32::usart::{Config, Uart}; | ||||
| use embassy_stm32::dbgmcu::Dbgmcu; | ||||
| use example_common::*; | ||||
| use embassy_traits::uart::Write as _Write; | ||||
| use example_common::*; | ||||
|  | ||||
| use hal::prelude::*; | ||||
| use stm32h7xx_hal as hal; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| use stm32h7::stm32h743 as pac; | ||||
| use heapless::String; | ||||
| use stm32h7::stm32h743 as pac; | ||||
|  | ||||
| #[embassy::task] | ||||
| async fn main_task() { | ||||
| @@ -40,7 +40,6 @@ async fn main_task() { | ||||
|  | ||||
|         info!("wrote DMA"); | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| struct ZeroClock; | ||||
|   | ||||
| @@ -21,7 +21,6 @@ embassy = { version = "0.1.0", path = "../../embassy", features = ["defmt", "def | ||||
| embassy-traits = { version = "0.1.0", path = "../../embassy-traits", features = ["defmt"] } | ||||
| embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "defmt-trace", "unstable-pac", "stm32l4s5vi"]  } | ||||
| embassy-extras = {version = "0.1.0", path = "../../embassy-extras" } | ||||
| stm32l4 = { version = "0.13", features = ["stm32l4x5" ] } | ||||
| stm32l4xx-hal = { version = "0.6.0", features = ["stm32l4x5"] } | ||||
|  | ||||
| defmt = "0.2.0" | ||||
|   | ||||
| @@ -11,11 +11,10 @@ mod example_common; | ||||
|  | ||||
| use example_common::*; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| //use stm32f4::stm32f429 as pac; | ||||
| use cortex_m::delay::Delay; | ||||
| use cortex_m_rt::entry; | ||||
| use embassy_stm32::adc::{Adc, Resolution}; | ||||
| use stm32l4::stm32l4x5 as pac; | ||||
| use embassy_stm32::pac; | ||||
| use stm32l4xx_hal::prelude::*; | ||||
| use stm32l4xx_hal::rcc::PllSource; | ||||
|  | ||||
| @@ -40,31 +39,16 @@ fn main() -> ! { | ||||
|         .pll_source(PllSource::HSI16) | ||||
|         .freeze(&mut flash.acr, &mut pwr); | ||||
|  | ||||
|     let pp = unsafe { pac::Peripherals::steal() }; | ||||
|  | ||||
|     pp.RCC.ccipr.modify(|_, w| { | ||||
|         unsafe { | ||||
|             w.adcsel().bits(0b11); | ||||
|         } | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     pp.DBGMCU.cr.modify(|_, w| { | ||||
|         w.dbg_sleep().set_bit(); | ||||
|         w.dbg_standby().set_bit(); | ||||
|         w.dbg_stop().set_bit() | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.ahb2enr.modify(|_, w| { | ||||
|         w.adcen().set_bit(); | ||||
|         w.gpioaen().set_bit(); | ||||
|         w.gpioben().set_bit(); | ||||
|         w.gpiocen().set_bit(); | ||||
|         w.gpioden().set_bit(); | ||||
|         w.gpioeen().set_bit(); | ||||
|         w.gpiofen().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|     unsafe { | ||||
|         pac::RCC.ccipr().modify(|w| { | ||||
|             w.set_adcsel(0b11); | ||||
|         }); | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|  | ||||
|   | ||||
| @@ -24,15 +24,6 @@ fn main() -> ! { | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb2enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|   | ||||
| @@ -28,15 +28,6 @@ fn main() -> ! { | ||||
|         pac::RCC.apb2enr().modify(|w| { | ||||
|             w.set_syscfgen(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb2enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|   | ||||
| @@ -59,15 +59,6 @@ fn main() -> ! { | ||||
|         pac::RCC.apb2enr().modify(|w| { | ||||
|             w.set_syscfgen(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb2enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     unsafe { embassy::time::set_clock(&ZeroClock) }; | ||||
|   | ||||
| @@ -13,11 +13,10 @@ use embassy_stm32::gpio::NoPin; | ||||
| use example_common::*; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| //use stm32f4::stm32f429 as pac; | ||||
| use embassy_stm32::dac::{Channel, Dac, Value}; | ||||
| use stm32l4::stm32l4x5 as pac; | ||||
| use embassy_stm32::pac; | ||||
| use stm32l4xx_hal::prelude::*; | ||||
| use stm32l4xx_hal::rcc::PllSource; | ||||
| use stm32l4xx_hal::{prelude::*}; | ||||
|  | ||||
| #[entry] | ||||
| fn main() -> ! { | ||||
| @@ -30,36 +29,23 @@ fn main() -> ! { | ||||
|  | ||||
|     // TRY the other clock configuration | ||||
|     // let clocks = rcc.cfgr.freeze(&mut flash.acr); | ||||
|     rcc | ||||
|         .cfgr | ||||
|     rcc.cfgr | ||||
|         .sysclk(80.mhz()) | ||||
|         .pclk1(80.mhz()) | ||||
|         .pclk2(80.mhz()) | ||||
|         .pll_source(PllSource::HSI16) | ||||
|         .freeze(&mut flash.acr, &mut pwr); | ||||
|  | ||||
|     let pp = unsafe { pac::Peripherals::steal() }; | ||||
|  | ||||
|     pp.DBGMCU.cr.modify(|_, w| { | ||||
|         w.dbg_sleep().set_bit(); | ||||
|         w.dbg_standby().set_bit(); | ||||
|         w.dbg_stop().set_bit() | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.apb1enr1.modify(|_, w| { | ||||
|         w.dac1en().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     pp.RCC.ahb2enr.modify(|_, w| { | ||||
|         w.gpioaen().set_bit(); | ||||
|         w.gpioben().set_bit(); | ||||
|         w.gpiocen().set_bit(); | ||||
|         w.gpioden().set_bit(); | ||||
|         w.gpioeen().set_bit(); | ||||
|         w.gpiofen().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|     unsafe { | ||||
|         pac::DBGMCU.cr().modify(|w| { | ||||
|             w.set_dbg_sleep(true); | ||||
|             w.set_dbg_standby(true); | ||||
|             w.set_dbg_stop(true); | ||||
|         }); | ||||
|         pac::RCC.apb1enr1().modify(|w| { | ||||
|             w.set_dac1en(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|  | ||||
|   | ||||
| @@ -32,15 +32,6 @@ fn main() -> ! { | ||||
|         pac::RCC.apb2enr().modify(|w| { | ||||
|             w.set_syscfgen(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb2enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|   | ||||
| @@ -60,15 +60,6 @@ fn main() -> ! { | ||||
|             w.set_dma1en(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb2enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.apb1enr1().modify(|w| { | ||||
|             w.set_uart4en(true); | ||||
|         }); | ||||
|   | ||||
| @@ -67,15 +67,6 @@ fn main() -> ! { | ||||
|             w.set_dma1en(true); | ||||
|             w.set_dma2en(true); | ||||
|         }); | ||||
|  | ||||
|         pac::RCC.ahb2enr().modify(|w| { | ||||
|             w.set_gpioaen(true); | ||||
|             w.set_gpioben(true); | ||||
|             w.set_gpiocen(true); | ||||
|             w.set_gpioden(true); | ||||
|             w.set_gpioeen(true); | ||||
|             w.set_gpiofen(true); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     unsafe { embassy::time::set_clock(&ZeroClock) }; | ||||
|   | ||||
| @@ -21,7 +21,6 @@ embassy = { version = "0.1.0", path = "../../embassy", features = ["defmt", "def | ||||
| embassy-traits = { version = "0.1.0", path = "../../embassy-traits", features = ["defmt"] } | ||||
| embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "defmt-trace", "stm32wb55cc"]  } | ||||
| embassy-extras = {version = "0.1.0", path = "../../embassy-extras" } | ||||
| stm32wb-pac = "0.2" | ||||
|  | ||||
| defmt = "0.2.0" | ||||
| defmt-rtt = "0.2.0" | ||||
|   | ||||
| @@ -13,19 +13,11 @@ use embedded_hal::digital::v2::OutputPin; | ||||
| use example_common::*; | ||||
|  | ||||
| use cortex_m_rt::entry; | ||||
| use stm32wb_pac as pac; | ||||
|  | ||||
| #[entry] | ||||
| fn main() -> ! { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     let pp = pac::Peripherals::take().unwrap(); | ||||
|  | ||||
|     pp.RCC.ahb2enr.modify(|_, w| { | ||||
|         w.gpioben().set_bit(); | ||||
|         w | ||||
|     }); | ||||
|  | ||||
|     let p = embassy_stm32::init(Default::default()); | ||||
|  | ||||
|     let mut led = Output::new(p.PB0, Level::High, Speed::Low); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user