واحد کلاک میکروکنترلر ARM

تنظیمات کلاک میکروکنترلر


خلاصه

در این آموزش با جزئیات بیشتری از نرم افزار CubeMX آشنا می شویم و در مورد تنظیمات واحد کلاک میکروکنترلر با نرم افزار CubeMX کار خواهیم کرد.



مشاهده ویدیو


نحوه انتخاب کریستال خارجی در نرم افزار کیوب



جزئیات واحد کلاک در نرم افزار کیوب



جزئیات تابغ SystemClock_Config


[pastacode lang=”c” manual=”%2F**%20System%20Clock%20Configuration%0A*%2F%0Avoid%20SystemClock_Config(void)%0A%7B%0A%0A%20%20RCC_OscInitTypeDef%20RCC_OscInitStruct%3B%0A%20%20RCC_ClkInitTypeDef%20RCC_ClkInitStruct%3B%0A%0A%20%20%20%20%2F**Initializes%20the%20CPU%2C%20AHB%20and%20APB%20busses%20clocks%20%0A%20%20%20%20*%2F%0A%20%20RCC_OscInitStruct.OscillatorType%20%3D%20RCC_OSCILLATORTYPE_HSE%3B%0A%20%20RCC_OscInitStruct.HSEState%20%3D%20RCC_HSE_ON%3B%0A%20%20RCC_OscInitStruct.HSEPredivValue%20%3D%20RCC_HSE_PREDIV_DIV5%3B%0A%20%20RCC_OscInitStruct.HSIState%20%3D%20RCC_HSI_ON%3B%0A%20%20RCC_OscInitStruct.Prediv1Source%20%3D%20RCC_PREDIV1_SOURCE_PLL2%3B%0A%20%20RCC_OscInitStruct.PLL.PLLState%20%3D%20RCC_PLL_ON%3B%0A%20%20RCC_OscInitStruct.PLL.PLLSource%20%3D%20RCC_PLLSOURCE_HSE%3B%0A%20%20RCC_OscInitStruct.PLL.PLLMUL%20%3D%20RCC_PLL_MUL9%3B%0A%20%20RCC_OscInitStruct.PLL2.PLL2State%20%3D%20RCC_PLL2_ON%3B%0A%20%20RCC_OscInitStruct.PLL2.PLL2MUL%20%3D%20RCC_PLL2_MUL8%3B%0A%20%20RCC_OscInitStruct.PLL2.HSEPrediv2Value%20%3D%20RCC_HSE_PREDIV2_DIV5%3B%0A%20%20if%20(HAL_RCC_OscConfig(%26RCC_OscInitStruct)%20!%3D%20HAL_OK)%0A%20%20%7B%0A%20%20%20%20_Error_Handler(__FILE__%2C%20__LINE__)%3B%0A%20%20%7D%0A%0A%20%20%20%20%2F**Initializes%20the%20CPU%2C%20AHB%20and%20APB%20busses%20clocks%20%0A%20%20%20%20*%2F%0A%20%20RCC_ClkInitStruct.ClockType%20%3D%20RCC_CLOCKTYPE_HCLK%7CRCC_CLOCKTYPE_SYSCLK%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7CRCC_CLOCKTYPE_PCLK1%7CRCC_CLOCKTYPE_PCLK2%3B%0A%20%20RCC_ClkInitStruct.SYSCLKSource%20%3D%20RCC_SYSCLKSOURCE_PLLCLK%3B%0A%20%20RCC_ClkInitStruct.AHBCLKDivider%20%3D%20RCC_SYSCLK_DIV1%3B%0A%20%20RCC_ClkInitStruct.APB1CLKDivider%20%3D%20RCC_HCLK_DIV2%3B%0A%20%20RCC_ClkInitStruct.APB2CLKDivider%20%3D%20RCC_HCLK_DIV1%3B%0A%0A%20%20if%20(HAL_RCC_ClockConfig(%26RCC_ClkInitStruct%2C%20FLASH_LATENCY_2)%20!%3D%20HAL_OK)%0A%20%20%7B%0A%20%20%20%20_Error_Handler(__FILE__%2C%20__LINE__)%3B%0A%20%20%7D%0A%0A%20%20%20%20%2F**Configure%20the%20Systick%20interrupt%20time%20%0A%20%20%20%20*%2F%0A%20%20HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()%2F1000)%3B%0A%0A%20%20%20%20%2F**Configure%20the%20Systick%20%0A%20%20%20%20*%2F%0A%20%20HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK)%3B%0A%0A%20%20%20%20%2F**Configure%20the%20Systick%20interrupt%20time%20%0A%20%20%20%20*%2F%0A%20%20__HAL_RCC_PLLI2S_ENABLE()%3B%0A%0A%20%20%2F*%20SysTick_IRQn%20interrupt%20configuration%20*%2F%0A%20%20HAL_NVIC_SetPriority(SysTick_IRQn%2C%200%2C%200)%3B%0A%7D” message=”” highlight=”” provider=”manual”/]


کانال تلگرام نامینیک

گروه تلگرام نامینیک ARM STM32


Tags: , , , , , ,