STM32时钟初始化的作用
时间: 2023-07-23 08:16:52 浏览: 69
STM32芯片的时钟初始化是非常重要的,它的作用包括以下几个方面:
1. 系统时钟的设置:芯片的主频、外设时钟等都需要依赖于系统时钟,因此时钟初始化的第一个作用就是设置系统时钟,以保证芯片正常工作。
2. 时钟源的选择:不同的时钟源可以提供不同的精度和稳定性,时钟初始化需要根据具体的应用要求选择适合的时钟源。
3. 外设时钟的使能:芯片上的各种外设需要使用时钟才能正常工作,时钟初始化需要配置并使能这些外设的时钟。
4. 低功耗模式下的时钟设置:在低功耗模式下,芯片需要使用低功耗时钟,时钟初始化需要设置低功耗时钟源并使能。
通过时钟初始化,可以有效保证芯片的正常工作,提高系统的稳定性和可靠性。同时,时钟初始化也是芯片开发的重要一环,需要开发人员充分理解时钟的作用和配置方法,以避免时钟方面的问题影响系统的性能和稳定性。
相关问题
Stm32 时钟初始化怎么写
Stm32 时钟初始化的代码可以参考以下示例:
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
// Enable HSE Oscillator and activate PLL with HSE as source
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_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_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
// Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
// Configure the Systick interrupt time
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() / 1000);
// Configure the Systick
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
// SysTick_IRQn interrupt configuration
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
stm32f103系统时钟初始化
在使用STM32F103系列芯片进行系统时钟初始化时,可以参考以下步骤:
1. 在主函数中调用Stm32_Clock_Init函数进行时钟初始化。该函数位于sys.c文件中,可以设置入口参数值为RCC_PLL_MUL9,表示使用PLL输入时钟乘以9的倍数进行时钟配置。\[1\]
2. 使用HAL库时,需要注意HAL库的SystemInit函数并没有进行时钟的初始化配置。因此,我们需要编写自己的时钟配置函数来完成时钟初始化。\[2\]
3. 在时钟配置函数中,可以使用宏定义__HAL_RCC_GPIOA_CLK_ENABLE()来使能GPIOA时钟,__HAL_RCC_DMA1_CLK_ENABLE()来使能DMA1时钟,__HAL_RCC_USART2_CLK_ENABLE()来使能串口2时钟,__HAL_RCC_TIM1_CLK_ENABLE()来使能TIM1时钟等。\[3\]
通过以上步骤,可以完成STM32F103系列芯片的系统时钟初始化。
#### 引用[.reference_title]
- *1* *2* *3* [STM32F103 HAL库基本使用(一)](https://blog.csdn.net/weixin_45488643/article/details/119321607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]