STMCU小助手
发布时间:2021-11-19 22:00
|
STM32L051c8t6 使用内部HSI时钟初始化。 + W$ ~+ G) ]5 R! T8 r RCC_ClkInitTypeDef RCC_ClkInitStruct; //结构体初始化 6 m- f2 a$ Q9 r1 D+ F8 o RCC_OscInitTypeDef RCC_OscInitStruct; //结构体初始化8 b& J/ v* K4 `9 A # E5 O7 j7 s v __HAL_RCC_PWR_CLK_ENABLE(); //使能电源控制时钟 : j4 U, r, ~' ?6 t __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1 这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作时使性能与功耗实现平衡 2 y4 z6 e" G# P- ^( V2 U. |3 Z RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; //时钟源为HSI内部高速时钟! h/ q, H& ]2 y$ _8 f0 L * }5 A/ |! d T7 B( X //RCC_OSCILLATORTYPE_HSE 高速外部时钟* G$ `' z$ O H RCC_OscInitStruct.HSEState = RCC_HSE_OFF; //关闭HES# c7 Y2 B X, `7 O2 W1 K RCC_OscInitStruct.HSIState = RCC_HSI_ON; //打开HSI0 W, w( K# m. v! r0 O 3 j$ L. h3 j& {3 Q" e RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; //打开PLL RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;//设置PLL时钟源为HSI / ?: g/ y7 h5 G# S& y1 P RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;//PLL VCO输入时钟的倍频系数/ I: c7 r3 \3 Y4 z , s# h- w% t5 r% m: p: Q RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;//PLL VCO输入时钟的分频系数 5 C% r3 N; }) h- O, d3 J$ h4 L RCC_OscInitStruct.HSICalibrationValue = 0x10;//HSI校准调整值 HAL_RCC_OscConfig(&RCC_OscInitStruct); //初始化, V3 A% I$ f8 M6 f. R # g( ~( w* U& U% K/ j6 c RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); //选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2 6 {, g9 `% i! a7 {$ C RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; //设置系统时钟源 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; //AHB分频系数为11 S3 p T: M" r4 N: X% H 6 g8 H" x5 I4 b RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; //APB1分频系数为1" _4 [6 M3 ]/ V% I) F% w) X, i$ S1 b & A& _2 Y$ f+ Y k: ~ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; //APB2分频系数为1/ t' x5 H$ w) w% b a4 G " p5 w4 ]. H% `2 R& [ HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);//初始化并同时设置FLASH 的延迟周期为1 |
微信公众号
手机版