STMCU小助手
发布时间:2021-11-19 22:00
|
STM32L051c8t6 使用内部HSI时钟初始化。8 J) b. x! G! {" H G* _ & q# Z3 I/ ?7 x: m# ~* }% z# M RCC_ClkInitTypeDef RCC_ClkInitStruct; //结构体初始化) w+ S% P: S: A4 J! H- S RCC_OscInitTypeDef RCC_OscInitStruct; //结构体初始化# w3 G# `( S2 m* G, K; U% X : D4 q9 X" T. {5 L* l* I __HAL_RCC_PWR_CLK_ENABLE(); //使能电源控制时钟 $ @$ |$ _( {% p6 _ C * e2 R9 H. [+ J0 j __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1 这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作时使性能与功耗实现平衡 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; //时钟源为HSI内部高速时钟 % G) o6 I& K2 v y( [2 _ //RCC_OSCILLATORTYPE_HSE 高速外部时钟 RCC_OscInitStruct.HSEState = RCC_HSE_OFF; //关闭HES+ q# G& q' c1 O 8 W; y- P. ~5 w7 y) a1 r RCC_OscInitStruct.HSIState = RCC_HSI_ON; //打开HSI u5 j) A, P: ~9 N9 n4 k1 X- c RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; //打开PLL) U8 k- y" \2 }4 g$ z4 h, D RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;//设置PLL时钟源为HSI 1 g" M( U) u; m/ h: X5 ` RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;//PLL VCO输入时钟的倍频系数+ t- k' R7 d( D4 o $ k7 {; Y# h0 K RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;//PLL VCO输入时钟的分频系数* D1 |$ o# ~$ k) E" w # B$ P/ }" Q' T7 [$ p( ?$ _1 R RCC_OscInitStruct.HSICalibrationValue = 0x10;//HSI校准调整值; _0 J" B0 b9 p) g HAL_RCC_OscConfig(&RCC_OscInitStruct); //初始化 RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); //选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; //设置系统时钟源 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; //AHB分频系数为1 0 U$ K/ t" C" k8 D n g) S2 v0 ~7 V, O RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; //APB1分频系数为1 9 h) a$ i' F6 x( k7 { RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; //APB2分频系数为1& f& B% _5 T6 g' i6 J1 U V) g5 z8 N 6 U; G, p4 l3 ~% l, K HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);//初始化并同时设置FLASH 的延迟周期为1; M6 k6 O I" I% R , I5 b8 p4 ]9 p& i" d q) w1 o. N" |9 L# L9 T) Z& w- c |
微信公众号
手机版