Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: stm32L152RC SysTick
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
maxntf
Помогите разобраться, не правильно работает функция SystemCoreClockUpdate()
Когда запускаю тактирование без PLL от встроенного генератора HSI - 16Mhz, работает правильно.
А когда включаю PLL, функция SystemCoreClockUpdate() возвращает все равно значение 16MHz, хотя реальная частота 32MHz.
Работает только если самому прописать SystemCoreClock = 32000000 перед вызовом SysTick_Config.
Код
    
RCC_Init();    
SystemCoreClockUpdate();
SysTick_Config(SystemCoreClock/1000);//TO=1ms


Код
void RCC_Init(void)
{
RCC_HSICmd(ENABLE);
while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);

FLASH->ACR=FLASH_ACR_ACC64;
FLASH->ACR|=FLASH_ACR_LATENCY;
FLASH->ACR|=FLASH_ACR_PRFTEN;

RCC_PLLConfig(RCC_PLLSource_HSI, RCC_PLLMul_4, RCC_PLLDiv_2);
RCC_PLLCmd(ENABLE);//Включаем PLL
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);    

RCC_HSEConfig(RCC_HSE_OFF);
while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET);
}
Forger
Цитата(maxntf @ Apr 23 2018, 18:09) *
Помогите разобраться, не правильно работает функция SystemCoreClockUpdate()

Запускайте под отладчиком и заходите внутрь этой самой "функции". Ищите "косяки", устраняйте.
Если все это делать затруднительно, то переходите на CUBE.
Obam
Systick-то сюда каким боком?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.