diff options
| -rw-r--r-- | embassy-stm32/src/rcc/f1.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/embassy-stm32/src/rcc/f1.rs b/embassy-stm32/src/rcc/f1.rs index 620638abd..106acb097 100644 --- a/embassy-stm32/src/rcc/f1.rs +++ b/embassy-stm32/src/rcc/f1.rs | |||
| @@ -28,7 +28,10 @@ pub struct Config { | |||
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | pub(crate) unsafe fn init(config: Config) { | 30 | pub(crate) unsafe fn init(config: Config) { |
| 31 | let pllsrcclk = config.hse.map(|hse| hse.0 / if config.pllxtpre {2} else {1}).unwrap_or(HSI_FREQ.0 / 2); | 31 | let pllsrcclk = config |
| 32 | .hse | ||
| 33 | .map(|hse| if config.pllxtpre { hse.0 / 2 } else { hse.0 }) | ||
| 34 | .unwrap_or(HSI_FREQ.0 / 2); | ||
| 32 | 35 | ||
| 33 | let sysclk = config.sys_ck.map(|sys| sys.0).unwrap_or(pllsrcclk); | 36 | let sysclk = config.sys_ck.map(|sys| sys.0).unwrap_or(pllsrcclk); |
| 34 | let pllmul = sysclk / pllsrcclk; | 37 | let pllmul = sysclk / pllsrcclk; |
| @@ -145,7 +148,11 @@ pub(crate) unsafe fn init(config: Config) { | |||
| 145 | } | 148 | } |
| 146 | 149 | ||
| 147 | if let Some(pllmul_bits) = pllmul_bits { | 150 | if let Some(pllmul_bits) = pllmul_bits { |
| 148 | RCC.cfgr().modify(|w| w.set_pllxtpre(Pllxtpre(if config.pllxtpre {1u8} else {0u8}))); | 151 | { |
| 152 | let pllctpre_flag: u8 = if config.pllxtpre { 1 } else { 0 }; | ||
| 153 | RCC.cfgr().modify(|w| w.set_pllxtpre(Pllxtpre(pllctpre_flag))); | ||
| 154 | } | ||
| 155 | |||
| 149 | // enable PLL and wait for it to be ready | 156 | // enable PLL and wait for it to be ready |
| 150 | RCC.cfgr().modify(|w| { | 157 | RCC.cfgr().modify(|w| { |
| 151 | w.set_pllmul(Pllmul(pllmul_bits)); | 158 | w.set_pllmul(Pllmul(pllmul_bits)); |
