x
SystemClock.cpp
- Committer:
- JackB
- Date:
- 2018-07-23
- Revision:
- 0:86b437ce0d0f
File content as of revision 0:86b437ce0d0f:
// ST_401_84MHZ // https://os.mbed.com/users/dreschpe/code/ST_401_84MHZ/ // If you want to use a different crystal or frequency : the STM32CubeMX tool is your friend :-) // use the STM32CubeMX Tool to calculate the register settings // www.st.com/stm32cube // //#include "stm32f4xx_hal.h" //#include "ST_F401_84MHZ.h" // //F401_init84::F401_init84(unsigned int external){ // if(external == 1){ // SystemClock_Config_84MHz_external(); // } // else { // SystemClock_Config_84MHz_internal(); // } // } // //void F401_init84::SystemClock_Config_84MHz_internal(void) //{ // HAL_RCC_DeInit(); // we have to reset the clock settings ! // RCC_ClkInitTypeDef RCC_ClkInitStruct; // RCC_OscInitTypeDef RCC_OscInitStruct; // // RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; // internal 16MHz RC // RCC_OscInitStruct.HSIState = RCC_HSI_ON; // RCC_OscInitStruct.HSICalibrationValue = 6; // RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; // PLL on // RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; // RCC_OscInitStruct.PLL.PLLM = 16; // setup PLL divider // RCC_OscInitStruct.PLL.PLLN = 336; // RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; // RCC_OscInitStruct.PLL.PLLQ = 4; // HAL_RCC_OscConfig(&RCC_OscInitStruct); // // RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1; // RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2); // SystemCoreClockUpdate(); // update SystemCoreClock var //} // // //// use a external 8 MHz crystal to generate the CPU clock //// You have to add X3 8MHz //// C33,C34 18pF 0603 //// R35,R37 0R 0603 or use wire // // //void F401_init84::SystemClock_Config_84MHz_external(void) //{ // HAL_RCC_DeInit(); // we have to reset the clock settings ! // RCC_ClkInitTypeDef RCC_ClkInitStruct; // RCC_OscInitTypeDef RCC_OscInitStruct; // // RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; // RCC_OscInitStruct.HSEState = RCC_HSE_ON; // RCC_OscInitStruct.LSIState = RCC_LSI_ON; // RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; // RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; // RCC_OscInitStruct.PLL.PLLM = 8; // RCC_OscInitStruct.PLL.PLLN = 336; // RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; // RCC_OscInitStruct.PLL.PLLQ = 4; // HAL_RCC_OscConfig(&RCC_OscInitStruct); // // RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1; // RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2); // SystemCoreClockUpdate(); // update SystemCoreClock var // //}