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