STM32L051c8t6 使用内部HSI时钟初始化。8 ]* u8 J9 A! R- N8 u5 l3 j " S" w- a1 d: W. f: N0 Y! B" i RCC_ClkInitTypeDef RCC_ClkInitStruct; //结构体初始化 RCC_OscInitTypeDef RCC_OscInitStruct; //结构体初始化. s: V$ z l, [, s. K# g - [, c; h) X3 x$ T5 P* b; z __HAL_RCC_PWR_CLK_ENABLE(); //使能电源控制时钟 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1 / D8 \/ s9 G% s( V+ R 这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作时使性能与功耗实现平衡$ S5 Q% X `: W. I. v2 n , k2 s- B0 ]1 G: R5 G, [ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; //时钟源为HSI内部高速时钟; U; e: e/ g/ A4 E //RCC_OSCILLATORTYPE_HSE 高速外部时钟 RCC_OscInitStruct.HSEState = RCC_HSE_OFF; //关闭HES & o- U) t0 C& k9 q RCC_OscInitStruct.HSIState = RCC_HSI_ON; //打开HSI1 ]3 j3 f# d; @3 v$ T2 V: l : ?& m0 `3 l" G RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; //打开PLL- D1 L0 y# ~) o: i' M1 n RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;//设置PLL时钟源为HSI5 B! [" R! e# b RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;//PLL VCO输入时钟的倍频系数 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;//PLL VCO输入时钟的分频系数/ ^5 p3 o: E, R' B5 s" G * {! p4 Z$ b( Y; Z. S RCC_OscInitStruct.HSICalibrationValue = 0x10;//HSI校准调整值8 G; V/ b# i+ Y1 s$ q! Y ) o1 K' X' u$ ? 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 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; //APB1分频系数为1 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; //APB2分频系数为1 + B: R9 \1 U; ~% c HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);//初始化并同时设置FLASH 的延迟周期为1 |