Struct stm32_hal2::clocks::Clocks [−][src]
pub struct Clocks {}Show fields
pub input_src: InputSrc, pub pllm: Pllm, pub plln: u8, pub pll_sai1_mul: u8, pub pll_sai2_mul: u8, pub pllr: Pllr, pub pllq: Pllr, pub hclk_prescaler: HclkPrescaler, pub apb1_prescaler: ApbPrescaler, pub apb2_prescaler: ApbPrescaler, pub clk48_src: Clk48Src, pub sai1_enabled: bool, pub sai2_enabled: bool, pub hse_bypass: bool, pub security_system: bool, pub hsi48_on: bool, pub stop_wuck: StopWuck,
Expand description
Settings used to configure clocks.
Fields
input_src: InputSrc
The input source for the system and peripheral clocks. Eg HSE, HSI, PLL etc
pllm: Pllm
plln: u8
pll_sai1_mul: u8
pll_sai2_mul: u8
pllr: Pllr
pllq: Pllr
hclk_prescaler: HclkPrescaler
The value to divide SYSCLK by, to get systick and peripheral clocks. Also known as AHB divider
apb1_prescaler: ApbPrescaler
The divider of HCLK to get the APB1 peripheral clock
apb2_prescaler: ApbPrescaler
The divider of HCLK to get the APB2 peripheral clock
clk48_src: Clk48Src
The input source for the 48Mhz clock used by USB.
sai1_enabled: bool
sai2_enabled: bool
hse_bypass: bool
Bypass the HSE output, for use with oscillators that don’t need it. Saves power, and frees up the pin for use as GPIO.
security_system: bool
hsi48_on: bool
Enable the HSI48. For L4, this is only applicable for some devices.
stop_wuck: StopWuck
Select the input source to use after waking up from stop
mode. Eg HSI or MSI.
Implementations
Setup common and return a Valid
status if the config is valid. Return
Invalid
, and don’t setup if not.
https://docs.rs/stm32f3xx-hal/0.5.0/stm32f3xx_hal/rcc/struct.CFGR.html
Use the STM32CubeIDE Clock Configuration tab to help.
Re-select input source; used after Stop and Standby modes, where the system reverts to MSI or HSI after wake.
Use this to change the MSI speed. Run this only if your clock source is MSI. Ends in a state with MSI on at the new speed, and HSI off.
Enables MSI, and configures it at 48Mhz, and trims it using the LSE. This is useful when using it as
the USB clock, ie with clk48_src: Clk48Src::Msi
. Don’t use this if using MSI for the input
source or PLL source. You may need to re-run this after exiting stop
mode. Only works for USB
if you have an LSE connected.
Note: MSIPLLEN must be enabled after LSE is enabled. So, run this function after RCC clock setup.
Check if the PLL is enabled. This is useful if checking wheather to re-enable the PLL after exiting Stop or Standby modes, eg so you don’t re-enable if it was already re-enabled in a different context. eg:
if !clock_cfg.pll_is_enabled() { clock_cfg.reselect_input(&mut dp.RCC); }