Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stm32f7xx.h"
- __IO uint32_t StartUpCounter = 0,
- HSEStatus = 0,
- HSEStartUp_TimeOut = 0x0500,
- PLLON_STATS = 0,
- StartUpCounterP = 0,
- sws_stats = 0;
- void Clock_configuration_HSE_Max(void){ // Clock configuration
- //HSE_Input = 8000000; //Bypass input Hz or ST-link
- RCC->CR |= RCC_CR_CSSON; //Clock security sistem
- RCC->CR |=RCC_CR_HSEBYP; //baypass enable
- RCC->CR |= RCC_CR_HSEON; //HIGH speed etrnal
- do
- {
- HSEStatus = RCC->CR & RCC_CR_HSERDY; //check redy
- StartUpCounter++; //check time oute on init
- }
- while((HSEStatus == 0) && (StartUpCounter != HSEStartUp_TimeOut));
- if ((RCC->CR & RCC_CR_HSERDY) != 0)
- {
- HSEStatus = (uint32_t)0x01;
- }
- else
- {
- HSEStatus = (uint32_t)0x00;
- }
- if (HSEStatus == (uint32_t)0x01) //если HSE запустился
- {
- /* Включаем буфер предвыборки FLASH */
- FLASH->ACR |= FLASH_ACR_PRFTEN;
- /* Конфигурируем Flash на 2 цикла ожидания */
- /* Это нужно потому, что Flash не может работать на высокой частоте */
- FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
- FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2WS;
- /* HCLK = SYSCLK */
- RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
- /* PCLK2 = HCLK */
- RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
- /* PCLK1 = HCLK */
- RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
- RCC->PLLCFGR = 0x24403604; // PLLM = 4 PLLN = 216 PLLP = 2
- //APB1 = 4 //делители на шины
- RCC->CFGR |= RCC_CFGR_PPRE1_0
- | RCC_CFGR_PPRE1_2;
- //APB2 = 2
- RCC->CFGR |= RCC_CFGR_PPRE2_2;
- RCC->PLLCFGR |= RCC_PLLCFGR_PLLSRC;
- /* Включаем PLL */
- RCC->CR |= RCC_CR_PLLON;
- mapB(1000000);
- /* Ожидаем, пока PLL выставит бит готовности */
- do {
- PLLON_STATS = RCC->CR & RCC_CR_PLLRDY;
- StartUpCounterP++;
- mapR(1000000);
- }
- while((PLLON_STATS == 0)&& (StartUpCounter != HSEStartUp_TimeOut));
- RCC->CFGR &=~RCC_CFGR_SW; // Очистить биты SW0, SW1.
- RCC->CFGR |= RCC_CFGR_SW_PLL; // Тактирование с выхода PLL.
- while ((RCC->CFGR&RCC_CFGR_SWS)!=0x08) {} // Ожидание переключения на PLL.
- }
- else {
- mapB(100000000);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement