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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:
" X& k' V% N3 C$ g3 `; o2 r" H1 o* M2 V& C2 J/ V/ c
20190806093803594.png

- ~3 j1 S0 ], c+ Z: n; m) k' `7 n9 X9 p$ y6 c
20190806093910148.png
3 ^# B3 H3 n+ B% r* W; b
) d+ x6 U  g9 p
  1. //时钟系统配置函数/ q! k5 O7 P( D; ]( }$ U
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;* \5 s0 d* r7 N
  3. //
    - X1 X& Z) v) ^9 I( R
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));9 Y! n/ E! L. \9 J# P
  5. //SYSCLK = ) s! x/ @' g4 g% m
  6. //Fs 8M
    ; Y! ]+ K, S/ G) k5 }6 G2 s$ B
  7. //Fvco: 8M
    ! m1 M1 z' g2 K  s6 }3 w( j
  8. //SYSCLK: 系统时钟频率 8*8/2=32
    & h# T9 X! m4 s( C; p& k; s. ?
  9. //PLLMUL:倍频 8  G3 G. M. z# e' C3 K% L
  10. //PLLDIV:分频系数 2
    , g; v0 t" W- c" t9 b$ |* N% g9 h
  11. ( R  U9 U. ]! x
  12. void SystemClockConfig( void )" X1 N6 u6 D" Z, ~* R; a
  13. {
    # D0 D7 i$ K# h: y  s" n+ n2 i
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;4 E8 u/ z. i' p4 B+ s+ v# T" u
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;9 [( S1 q8 V  x  Q0 Z

  16.   ?0 P: F( A7 {" w8 V/ C* S
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();! z9 V9 P/ Z4 E. s6 B  B( B
  18.     __HAL_RCC_PWR_CLK_ENABLE( );
    ' S. H* v9 F3 C7 u& M! ]
  19. ( |8 [: h3 \7 w! D2 e: E3 t8 @
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );    / V. ?# A% K! t2 H' \1 c
  21. 1 i- O) L+ N. K5 _  c7 m+ ^' R$ U% R
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M  k" l+ c/ A* G0 ^% u# Y
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE
    & V+ l& A/ K+ Z- t7 n' @
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL
    0 ~5 O% L; @4 n4 x9 s
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源
    ( _) K8 F9 X: @
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频4 Y, j: \6 `! r5 H! x) F3 D
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数% {, N, |/ d# }8 T0 r) d/ E
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )
    ! y0 ^" m/ I" @+ v0 m
  29.     {% c, k- s8 L: x  \2 x( X
  30.         assert_param( FAIL );6 G3 n5 j, ^$ n7 |
  31.     }+ r, f' r! y0 z! U1 L1 |$ y

  32. 4 ~2 B/ L; \# G( y* i# a9 F0 C
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |
    " g: T! l, G0 v) ]
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
    5 \* f1 M* O8 {/ y. M
  35. 9 ?/ q; X/ Q, ^5 X# B) W. e* x
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源: r8 O9 R/ c" i' i: Q2 c
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32; J5 s' g4 M9 ]9 m9 R9 A0 l
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    $ M# {4 G& ^" F7 _. ~) |
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 322 x" O3 l. B# B4 {/ {
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )# f0 ~- V) {& E' `
  41.     {
    + [, i# k) U1 T( x" ~: d& ]0 `- _
  42.         assert_param( FAIL );- {6 ?" C" h: \5 k+ o/ Q" n
  43.     }
    , e+ Q5 M" m7 v; b. ~" o
  44. 8 F/ q1 R0 C0 P
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );; I9 o7 [2 o/ u; @6 H/ Y5 W
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );
    - C) U& \+ q+ V/ L; p2 R, s: y" E
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );& ]0 C7 u4 |/ ^' ~- c6 O" o0 x7 C
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);) I& Z$ R6 x0 E0 o- K1 b2 Y
  49. }
复制代码

: o8 z* r6 w" ~  K5 _3 |( C; z+ |& G. }) U
7 `$ }0 |3 W" {5 e* E7 p
收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答

所属标签

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