libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
rcc.c File Reference
Include dependency graph for rcc.c:

Go to the source code of this file.

Functions

void rcc_osc_on (enum rcc_osc osc)
 
void rcc_osc_off (enum rcc_osc osc)
 
void rcc_osc_ready_int_clear (enum rcc_osc osc)
 RCC Clear the Oscillator Ready Interrupt Flag. More...
 
void rcc_osc_ready_int_enable (enum rcc_osc osc)
 RCC Enable the Oscillator Ready Interrupt. More...
 
void rcc_osc_ready_int_disable (enum rcc_osc osc)
 RCC Disable the Oscillator Ready Interrupt. More...
 
int rcc_osc_ready_int_flag (enum rcc_osc osc)
 RCC Read the Oscillator Ready Interrupt Flag. More...
 
bool rcc_is_osc_ready (enum rcc_osc osc)
 Is the given oscillator ready? More...
 
void rcc_wait_for_osc_ready (enum rcc_osc osc)
 Wait for Oscillator Ready. More...
 
void rcc_set_hsi48_source_rc48 (void)
 RCC Set HSI48 clock source to the RC48 (CRS) More...
 
void rcc_set_hsi48_source_pll (void)
 RCC Set HSI48 clock source to the PLL. More...
 
void rcc_set_sysclk_source (enum rcc_osc osc)
 RCC Set the Source for the System Clock. More...
 
void rcc_set_pll_multiplier (uint32_t factor)
 RCC Set the PLL Multiplication Factor. More...
 
void rcc_set_pll_divider (uint32_t factor)
 RCC Set the PLL Division Factor. More...
 
void rcc_set_pll_source (uint32_t pllsrc)
 Set the pll source. More...
 
void rcc_set_ppre1 (uint32_t ppre)
 RCC Set the APB1 Prescale Factor. More...
 
void rcc_set_ppre2 (uint32_t ppre)
 RCC Set the APB2 Prescale Factor. More...
 
void rcc_set_hpre (uint32_t hpre)
 RCC Set the AHB Prescale Factor. More...
 
void rcc_set_msi_range (uint32_t msi_range)
 Set the range of the MSI oscillator. More...
 
void rcc_set_lptim1_sel (uint32_t lptim1_sel)
 Set the LPTIM1 clock source. More...
 
void rcc_set_lpuart1_sel (uint32_t lpuart1_sel)
 Set the LPUART1 clock source. More...
 
void rcc_set_usart1_sel (uint32_t usart1_sel)
 Set the USART1 clock source. More...
 
void rcc_set_usart2_sel (uint32_t usart2_sel)
 Set the USART2 clock source. More...
 
void rcc_set_peripheral_clk_sel (uint32_t periph, uint32_t sel)
 Set the peripheral clock source. More...
 
static uint32_t rcc_uart_i2c_clksel_freq_hz (uint32_t apb_clk, uint8_t shift)
 
uint32_t rcc_get_usart_clk_freq (uint32_t usart)
 Get the peripheral clock speed for the USART at base specified. More...
 
uint32_t rcc_get_timer_clk_freq (uint32_t timer)
 Get the peripheral clock speed for the Timer at base specified. More...
 
uint32_t rcc_get_i2c_clk_freq (uint32_t i2c)
 Get the peripheral clock speed for the I2C device at base specified. More...
 
uint32_t rcc_get_spi_clk_freq (uint32_t spi)
 Get the peripheral clock speed for the SPI device at base specified. More...
 
void rcc_clock_setup_pll (const struct rcc_clock_scale *clock)
 RCC Setup PLL and use it as Sysclk source. More...
 

Variables

uint32_t rcc_ahb_frequency = 2097000
 
uint32_t rcc_apb1_frequency = 2097000
 
uint32_t rcc_apb2_frequency = 2097000