diff --git a/embassy-stm32/src/rcc/g0.rs b/embassy-stm32/src/rcc/g0.rs index 7f62031e5..aedc95bf3 100644 --- a/embassy-stm32/src/rcc/g0.rs +++ b/embassy-stm32/src/rcc/g0.rs @@ -299,7 +299,9 @@ pub(crate) unsafe fn init(config: Config) { let lse_freq = config.ls.lse.map(|lse| lse.frequency); let hsi_freq = (sw == Sw::HSI).then_some(HSI_FREQ); + let hsi_div_8_freq = hsi_freq.map(|f| f / 8u32); let lsi_freq = (sw == Sw::LSI).then_some(super::LSI_FREQ); + let hse_freq = (sw == Sw::HSE).then_some(sys_clk); set_freqs(Clocks { sys: sys_clk, @@ -307,6 +309,9 @@ pub(crate) unsafe fn init(config: Config) { pclk1: apb_freq, pclk1_tim: apb_tim_freq, hsi: hsi_freq, + hsi48: None, + hsi_div_8: hsi_div_8_freq, + hse: hse_freq, lse: lse_freq, lsi: lsi_freq, pll1_q: pll1_q_freq, diff --git a/embassy-stm32/src/rcc/mod.rs b/embassy-stm32/src/rcc/mod.rs index c4bee4c95..240ffc6d2 100644 --- a/embassy-stm32/src/rcc/mod.rs +++ b/embassy-stm32/src/rcc/mod.rs @@ -162,8 +162,10 @@ pub struct Clocks { #[cfg(any(stm32h5, stm32h7, rcc_l4, rcc_c0, stm32g0))] pub hsi: Option, - #[cfg(stm32h5)] + #[cfg(any(stm32h5, stm32g0))] pub hsi48: Option, + #[cfg(stm32g0)] + pub hsi_div_8: Option, #[cfg(any(stm32g0, stm32h5))] pub lsi: Option, #[cfg(any(stm32h5, stm32h7))] @@ -171,7 +173,7 @@ pub struct Clocks { #[cfg(any(stm32h5, stm32h7, rcc_l4, rcc_c0, stm32g0))] pub lse: Option, - #[cfg(any(stm32h5, stm32h7, stm32g4))] + #[cfg(any(stm32h5, stm32h7, stm32g0, stm32g4))] pub hse: Option, #[cfg(stm32h5)]