feather_f405/clocks.rs
1use stm32f4xx_hal::rcc::{Clocks, RccExt};
2use stm32f4xx_hal::stm32;
3use stm32f4xx_hal::time::U32Ext;
4
5/// Helper for setting up the clocks on the board
6pub fn clock_setup(rcc: stm32::RCC) -> Clocks {
7 // Constrain clock registers
8 let rcc = rcc.constrain();
9
10 let clocks = rcc
11 .cfgr
12 .use_hse(12.mhz())
13 .require_pll48clk()
14 .sysclk(168.mhz())
15 .hclk(168.mhz())
16 .pclk1(42.mhz())
17 .pclk2(84.mhz())
18 .freeze();
19
20 assert!(clocks.is_pll48clk_valid());
21
22 clocks
23}