aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple
diff options
context:
space:
mode:
Diffstat (limited to 'libmaple')
-rw-r--r--libmaple/stm32f1/rcc.c3
-rw-r--r--libmaple/stm32f2/rcc.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/libmaple/stm32f1/rcc.c b/libmaple/stm32f1/rcc.c
index a9c9c3a..0752b82 100644
--- a/libmaple/stm32f1/rcc.c
+++ b/libmaple/stm32f1/rcc.c
@@ -139,6 +139,9 @@ void rcc_configure_pll(rcc_pll_cfg *pll_cfg) {
rcc_pll_multiplier pll_mul = data->pll_mul;
uint32 cfgr;
+ /* Check that the PLL is disabled. */
+ ASSERT_FAULT(!rcc_is_clk_on(RCC_CLK_PLL));
+
cfgr = RCC_BASE->CFGR;
cfgr &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL);
cfgr |= pll_cfg->pllsrc | pll_mul;
diff --git a/libmaple/stm32f2/rcc.c b/libmaple/stm32f2/rcc.c
index b94f2e6..46e6565 100644
--- a/libmaple/stm32f2/rcc.c
+++ b/libmaple/stm32f2/rcc.c
@@ -173,6 +173,9 @@ void rcc_configure_pll(rcc_pll_cfg *pll_cfg) {
stm32f2_rcc_pll_data *data = pll_cfg->data;
uint32 pllcfgr;
+ /* Check that the PLL is disabled. */
+ ASSERT_FAULT(!rcc_is_clk_on(RCC_CLK_PLL));
+
/* Sanity-check all the parameters */
ASSERT_FAULT((data->pllq >= 4) && (data->pllq <= 15));
ASSERT_FAULT((data->pllp >= 2) && (data->pllp <= 8));