|
@@ -34,38 +34,49 @@ void Board_Init(void)
|
|
|
void SystemClock_Config(void)
|
|
|
{
|
|
|
/* HSI configuration and activation */
|
|
|
- LL_RCC_HSI_Enable();
|
|
|
- while(LL_RCC_HSI_IsReady() != 1)
|
|
|
+ RCC->CR |= RCC_CR_HSIKERON; // Enable HSI even in stop mode
|
|
|
+ while((RCC->CR & RCC_CR_HSIRDY) == 0)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
/* Main PLL configuration and activation */
|
|
|
- LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI, LL_RCC_PLLM_DIV_2, 9, LL_RCC_PLLR_DIV_3);
|
|
|
- LL_RCC_PLL_Enable();
|
|
|
- LL_RCC_PLL_EnableDomain_SYS();
|
|
|
- while(LL_RCC_PLL_IsReady() != 1)
|
|
|
+ RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR);
|
|
|
+ RCC->PLLCFGR |= (RCC_PLLCFGR_PLLSRC_HSI | (9 << RCC_PLLCFGR_PLLN_Pos) | RCC_PLLCFGR_PLLR_2 | RCC_PLLCFGR_PLLR_0);
|
|
|
+ RCC->PLLCFGR |= RCC_PLLCFGR_PLLREN; // RCC_PLL_EnableDomain_SYS
|
|
|
+ RCC->CR |= RCC_CR_PLLON; // RCC_PLL_Enable
|
|
|
+ while((RCC->CR & RCC_CR_PLLRDY) == 0)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
/* Set AHB prescaler*/
|
|
|
- LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
|
|
|
+ //RCC->CFGR &= ~(RCC_CFGR_HPRE);
|
|
|
+ //RCC->CFGR |= 0x00000000U;
|
|
|
|
|
|
/* Sysclk activation on the main PLL */
|
|
|
- LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
|
|
|
- while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
|
|
|
+ RCC->CFGR &= RCC_CFGR_SW;
|
|
|
+ RCC->CFGR |= RCC_CFGR_SW_1;
|
|
|
+ while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
- /* Set APB1 prescaler*/
|
|
|
- LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
|
|
|
+ /* Set APB1 prescaler !!! uncorrect !!! */
|
|
|
+ //RCC->CFGR &= RCC_CFGR_PPRE;
|
|
|
+ //RCC->CFGR |= 0x00000000U;
|
|
|
|
|
|
- LL_Init1msTick(24000000);
|
|
|
+#ifdef USES_SYSTICK
|
|
|
+ /* Configure the SysTick to have interrupt in 1ms time base */
|
|
|
+ SysTick->LOAD = (uint32_t)((24000000 / 1000) - 1UL); /* set reload register */
|
|
|
+ SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
|
|
|
+ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
|
|
|
+ SysTick_CTRL_ENABLE_Msk; /* Enable the Systick Timer */
|
|
|
+#endif
|
|
|
|
|
|
/* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
|
|
|
- LL_SetSystemCoreClock(24000000);
|
|
|
+ SystemCoreClock = 24000000;
|
|
|
|
|
|
- /* Select I2C clock source */
|
|
|
- LL_RCC_SetI2CClockSource(LL_RCC_I2C1_CLKSOURCE_HSI);
|
|
|
+ /* Set I2C Clock Source */
|
|
|
+ RCC->CCIPR &= ~(RCC_CCIPR_I2C1SEL);
|
|
|
+ RCC->CCIPR |= RCC_CCIPR_I2C1SEL_1;
|
|
|
}
|
|
|
|
|
|
/**
|