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}