Clock
Examples
#include "halmcu/hal/clk.h"
#include "halmcu/compiler.h"
int main(void)
{
clk_init(CLK_HSI, 16000000);
uint32_t hclk = clk_get_hclk_frequency();
uint32_t pclk = clk_get_pclk_frequency();
unused(hclk);
unused(pclk);
while (1) {
/* hang */
}
return 0;
}
HAL
Functions
-
bool clk_init(clk_source_t clock_source, uint32_t target_hz)
LL
Enums
-
enum clk_source_t
Clock source type
Values:
-
enumerator CLK_LSI
Low-speed internal oscillator
-
enumerator CLK_HSI
High-speed internal oscillator
-
enumerator CLK_LSE
Low-speed external oscillator
-
enumerator CLK_HSE
High-speed external oscillator
-
enumerator CLK_PLL
PLL
-
enumerator CLK_PLL_BYPASS
PLL bypass
-
enumerator CLK_LSI
Functions
-
void clk_reset(void)
Reset CLK unit.
This function makes CLK unit the reset state.
-
void clk_enable_peripheral(periph_t peri)
Enable peripheral clock.
- Parameters
peri – [in] enumerated in periph_t
-
void clk_disable_peripheral(periph_t peri)
Disable peripheral clock.
- Parameters
peri – [in] enumerated in periph_t
-
void clk_enable_source(clk_source_t clk)
Enable clock source.
- Parameters
clk – [in] Clock source.
-
void clk_disable_source(clk_source_t clk)
Disable clock source.
- Parameters
clk – [in] Clock source.
-
void clk_set_source(clk_source_t clk)
Select main clock source.
-
clk_source_t clk_get_source(void)
Get main clock source.
-
bool clk_set_pll_frequency(clk_source_t clk, clk_source_t clkin, uint32_t hz)
Set frequency.
-
void clk_start_pll(void)
Enable PLL.
-
void clk_stop_pll(void)
Disable PLL.
-
bool clk_is_pll_locked(void)
Check if PLL is locked.
-
uint32_t clk_get_hclk_frequency(void)
Get processor clock frequency in Hz.
-
uint32_t clk_get_pclk_frequency(void)
Get PCLK frequency in Hz.
-
uint32_t clk_get_frequency(clk_source_t clk)
Get clock frequency in Hz.
-
clk_source_t clk_get_peripheral_clock_source(periph_t peri)
Get peripheral clock source.
-
void clk_set_peripheral_clock_source(periph_t peri, clk_source_t clk)
-
void clk_enable_output(void)
-
void clk_disable_output(void)
-
void clk_set_output_prescaler(uint32_t div_factor)
-
void clk_set_output_source(clk_source_t clk)