From d5c82859448009355986ddb01559dfaec25fb2a5 Mon Sep 17 00:00:00 2001 From: EyeXion <52245783+EyeXion@users.noreply.github.com> Date: Mon, 19 Oct 2020 11:43:02 +0200 Subject: [PATCH] Added clockConfig --- Src/Voile.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/Src/Voile.c b/Src/Voile.c index 9d5de00..75a6186 100644 --- a/Src/Voile.c +++ b/Src/Voile.c @@ -1,6 +1,9 @@ #include "Voile.h" #include "stm32f1xx_ll_gpio.h" +#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config +#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config +#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config #include "stm32f1xx_ll_tim.h" #include "stdlib.h" //Remplacer par maths.h quand on va tout faire marcher. @@ -48,6 +51,62 @@ void TendreVoile(int theta) } + +/** + * @brief System Clock Configuration + * The system Clock is configured as follow : + * System Clock source = PLL (HSE) + * SYSCLK(Hz) = 72000000 + * HCLK(Hz) = 72000000 + * AHB Prescaler = 1 + * APB1 Prescaler = 2 + * APB2 Prescaler = 1 + * HSE Frequency(Hz) = 8000000 + * PLLMUL = 9 + * Flash Latency(WS) = 2 + * @param None + * @retval None + */ +void SystemClock_Config(void) +{ + /* Set FLASH latency */ + LL_FLASH_SetLatency(LL_FLASH_LATENCY_2); + + /* Enable HSE oscillator */ + // ********* Commenter la ligne ci-dessous pour MCBSTM32 ***************** + // ********* Conserver la ligne si Nucléo********************************* + LL_RCC_HSE_EnableBypass(); + LL_RCC_HSE_Enable(); + while(LL_RCC_HSE_IsReady() != 1) + { + }; + + /* Main PLL configuration and activation */ + LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9); + + LL_RCC_PLL_Enable(); + while(LL_RCC_PLL_IsReady() != 1) + { + }; + + /* Sysclk activation on the main PLL */ + LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1); + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL); + while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL) + { + }; + + /* Set APB1 & APB2 prescaler*/ + LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2); + LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1); + + /* Set systick to 1ms in using frequency set to 72MHz */ + LL_Init1msTick(72000000); // utile lorsqu'on utilise la fonction LL_mDelay + + /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */ + LL_SetSystemCoreClock(72000000); +} + int main(){