你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32L0 (一)系统时钟配置

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:
$ l- i6 N$ ~  }
4 X/ S* A7 x8 W3 g6 S. G
20190806093803594.png

' Q/ p" ~- y, o7 w9 W' {
5 H, T4 o$ y( q" W! z5 f: O7 ^/ s
20190806093910148.png
8 [' R/ S5 W4 }" a" e; r6 _! M
8 C! w0 j1 j# q4 ?$ V: ~, |  u
  1. //时钟系统配置函数
    6 R; w8 r8 }7 |2 E' ~; v( w
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;3 T* @; c' D# k* Z/ {! n5 y. s( l
  3. //% }6 k7 ?2 |, ]
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));' v9 P( e% ^+ P
  5. //SYSCLK = 5 |" n2 ^8 |' Q/ ?; \5 a
  6. //Fs 8M
    : ^7 R' l: T8 I: s' o6 |" O
  7. //Fvco: 8M, ?5 X# `, }  Z! F- b
  8. //SYSCLK: 系统时钟频率 8*8/2=321 ?/ Q, l8 L2 M) d. V& U$ N) Z
  9. //PLLMUL:倍频 89 A; T) c) `% r1 B+ {/ W+ x' x( [
  10. //PLLDIV:分频系数 2 + A" N/ M# s6 X
  11. ' x  Y* P; |& B/ \8 j$ e1 k
  12. void SystemClockConfig( void )
    # j/ X/ A3 h& y3 Z
  13. {! e+ w  g& M7 r/ _/ W$ D. v5 I" N
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;
    4 k; w! s$ K) ~, x+ D8 J6 G& [
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;4 D3 Z  `! A3 ^4 y
  16. 5 H6 c8 t* a) l9 f1 G- }5 @* \
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();2 x! F* @+ L+ t% x7 V7 N! m
  18.     __HAL_RCC_PWR_CLK_ENABLE( );4 g3 f3 q- @$ X- ]" m4 S

  19. 2 A9 q: L. _" ]; A
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );    ' q+ r! _; F- y) ~9 }8 D
  21. 6 p3 r6 Y# P8 m1 o  {7 U! R( [# [
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M
    ! P5 N4 ^8 K. H5 I- f  U, w" e
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE
    ' Z. @( x) A( h( q) O* i- \0 O. L
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL1 I% b; @0 J' t/ L% R" F, }
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源2 T- ]1 q" C0 d0 G8 X& m# r- q/ W1 z2 X
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频$ L; J7 u# ?  ^
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数! s, U+ L# C$ {+ j! _* O# F
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )
      V. k" v, I7 u& m  K& N. p+ X
  29.     {  \8 [9 S: ^5 {( i
  30.         assert_param( FAIL );
    + e/ S  z3 H3 q5 {7 N+ y, c
  31.     }5 P4 @* v4 a3 F3 T5 V+ O/ f
  32. 2 R0 |" M# _( x+ k  m
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |& B- T0 K1 [( y
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
    5 M1 j4 Y3 h2 @/ g

  35. # y& z1 P- z  v
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源
    1 y5 Q1 w. P2 {$ g5 P1 v! Z) E
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32
      ]/ k  |/ @, Y1 q1 t
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    0 q" c! C5 q. t* M: `8 W: Z
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32! s/ s& N! g/ w; h
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )  v0 o4 W7 _* I1 v, b
  41.     {+ M, E( `9 P, j& I7 g* z
  42.         assert_param( FAIL );
    ; g1 N, u) e: ?- G
  43.     }% l. M! W; f9 u0 M3 y: d
  44. ; A6 r5 m) h" q; B
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );
    9 R. \- y4 B' a- E* Y
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );2 ?* A" Z& n9 U' ^' i3 s
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );
    8 Y' P4 v7 H" [' k
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);* Y# G5 M+ ]6 E( h, h. g. f; i
  49. }
复制代码

2 Z3 k/ U. N( _4 X3 k8 @, l# w( i$ b% \5 z& e0 z6 D2 A
# O# x- x$ Y( h/ `/ u" p' q) {
收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版