这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » stm32L0(一)系统时钟配置

共3条 1/1 1 跳转至

stm32L0(一)系统时钟配置

院士
2023-05-22 23:33:33     打赏

MCU为stm32l0系列,时钟配置如下:

st-img



st-img



  1. //时钟系统配置函数

  2. //SYSCLK=Fs*PLLMUL/PLLDIV;

  3. //

  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));

  5. //SYSCLK =

  6. //Fs 8M

  7. //Fvco: 8M

  8. //SYSCLK: 系统时钟频率 8*8/2=32

  9. //PLLMUL:倍频 8

  10. //PLLDIV:分频系数 2


  11. void SystemClockConfig( void )

  12. {

  13.     RCC_OscInitTypeDef RCC_OscInitStruct;

  14.     RCC_ClkInitTypeDef RCC_ClkInitStruct;


  15.     __HAL_RCC_GPIOH_CLK_ENABLE();

  16.     __HAL_RCC_PWR_CLK_ENABLE( );


  17.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );   


  18.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M

  19.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE

  20.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL

  21.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源

  22.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频

  23.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数

  24.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )

  25.     {

  26.         assert_param( FAIL );

  27.     }


  28.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |

  29.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;


  30.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源

  31.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32

  32.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4

  33.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32

  34.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )

  35.     {

  36.         assert_param( FAIL );

  37.     }


  38.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );

  39.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );

  40.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );

  41.     HAL_NVIC_EnableIRQ(SysTick_IRQn);

  42. }




专家
2023-05-23 01:36:03     打赏
2楼

感谢楼主的分享,很实用了。


高工
2023-05-23 08:28:29     打赏
3楼

配置工具越来越方便了


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]