maxntf 0 23 апреля, 2018 Опубликовано 23 апреля, 2018 · Жалоба Помогите разобраться, не правильно работает функция 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 17 23 апреля, 2018 Опубликовано 23 апреля, 2018 · Жалоба Помогите разобраться, не правильно работает функция SystemCoreClockUpdate() Запускайте под отладчиком и заходите внутрь этой самой "функции". Ищите "косяки", устраняйте. Если все это делать затруднительно, то переходите на CUBE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 29 23 апреля, 2018 Опубликовано 23 апреля, 2018 · Жалоба Systick-то сюда каким боком? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться