mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-25 00:02:28 +00:00
stm32: ensure the core runs on HSI clock while setting up rcc
This commit is contained in:
parent
bd13b5c060
commit
10ee1c1ae8
@ -146,17 +146,18 @@ pub(crate) unsafe fn init(config: Config) {
|
||||
while !PWR.csr1().read().odswrdy() {}
|
||||
}
|
||||
|
||||
// Turn on the HSI
|
||||
RCC.cr().modify(|w| w.set_hsion(true));
|
||||
while !RCC.cr().read().hsirdy() {}
|
||||
|
||||
// Use the HSI clock as system clock during the actual clock setup
|
||||
RCC.cfgr().modify(|w| w.set_sw(Sysclk::HSI));
|
||||
while RCC.cfgr().read().sws() != Sysclk::HSI {}
|
||||
|
||||
// Configure HSI
|
||||
let hsi = match config.hsi {
|
||||
false => {
|
||||
RCC.cr().modify(|w| w.set_hsion(false));
|
||||
None
|
||||
}
|
||||
true => {
|
||||
RCC.cr().modify(|w| w.set_hsion(true));
|
||||
while !RCC.cr().read().hsirdy() {}
|
||||
Some(HSI_FREQ)
|
||||
}
|
||||
false => None,
|
||||
true => Some(HSI_FREQ),
|
||||
};
|
||||
|
||||
// Configure HSE
|
||||
@ -260,6 +261,11 @@ pub(crate) unsafe fn init(config: Config) {
|
||||
});
|
||||
while RCC.cfgr().read().sws() != config.sys {}
|
||||
|
||||
// Disable HSI if not used
|
||||
if !config.hsi {
|
||||
RCC.cr().modify(|w| w.set_hsion(false));
|
||||
}
|
||||
|
||||
config.mux.init();
|
||||
|
||||
set_clocks!(
|
||||
|
Loading…
Reference in New Issue
Block a user