请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:
& `9 X3 W) S2 d) j' X' g! k. U& h$ p3 Q/ z
20190806093803594.png
+ }* `( o7 Q3 S9 H; u- i  ^

( L' _8 ]6 Y" B9 v( ]5 L1 O
20190806093910148.png

  @9 c1 v) o- K2 f0 X9 T/ h, z  |1 X9 f) l; j5 ^: _; C
  1. //时钟系统配置函数
    - y: p3 ?3 C: {
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;
    . ~: K) N4 V. `3 Z( \
  3. //
    5 n$ U) ^2 r* k! D
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));* n: @$ A3 P' c9 {! h# P8 t, \
  5. //SYSCLK = & q9 D1 P: P# L& y
  6. //Fs 8M
    - P) i7 o: l* w
  7. //Fvco: 8M
    ' A- o" S7 l" X( v- v
  8. //SYSCLK: 系统时钟频率 8*8/2=32
    0 D  z' @' e5 F  [- c) c' h$ \
  9. //PLLMUL:倍频 8
    2 Y( m  X- k! N4 h- [& r$ n
  10. //PLLDIV:分频系数 2 ; Y8 P& {+ {% L9 R4 b% `3 Y
  11. 9 j$ O0 \- T' v
  12. void SystemClockConfig( void )
    0 p$ a# i) R, g0 i1 G* f
  13. {
    / M% E# p2 h9 K4 A" z
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;& ?6 J* Z  }5 |0 D% S% T- }
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;
    ) I! V  T: }* }# H% l

  16. ) {% c  F" z6 o: n
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();7 l1 s4 \6 r0 `7 h' U" u6 n4 Q
  18.     __HAL_RCC_PWR_CLK_ENABLE( );6 E  a% |! V/ D+ G- N/ d9 m

  19. , E9 C& }, t" [( g( z
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );    # c5 ?, ~  c# {3 p' n
  21. ! r% }* }  ?8 ]* P
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M
    ! [/ ]  x# {/ P9 |
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE/ m: \4 B: h. P4 J/ W; X
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL7 h% R. x1 B% y( Q& C
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源+ f# L; r1 \1 w5 l, y6 b
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频
    ) s, T3 h) I0 y  |# d" _
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数, u4 T! w' Q( a/ H' K) m; \
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK ): G0 i1 b* W) o6 L* M2 h
  29.     {
    / [" B! ]6 j( p2 i4 m
  30.         assert_param( FAIL );9 l1 q7 A" j/ \4 I3 p' M3 H
  31.     }
    5 Y+ w7 w; c  _' z+ R7 V

  32. , D: v' q4 C* r! ]- Z" H; ?7 j# A
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |" N3 z3 L+ ]. a; J- o  U
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
    $ E' x; |3 v( T% D9 f) [7 m( u

  35. " B) w! r8 Z5 S) N# V- F5 k( T
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源, H8 [6 |, J5 l+ R; z) \. a
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32# e0 {5 b8 V. Y5 N! _  |
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    $ s, `" o" Z9 v
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32. s3 K0 c) x2 A3 P! x0 n! I
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )
    0 u/ H4 _6 w8 t8 e
  41.     {+ c9 R5 W% Y) F7 _2 ^& m
  42.         assert_param( FAIL );
    5 e/ r# k5 n% y9 w& [1 J: A
  43.     }4 N% Y' W  _% f) T" ^1 t

  44. 7 g3 Y) e' Q3 I- Z$ E: c
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );
    % D' A8 O- d: Q  {  ^8 l
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );. B& j* }5 [, X7 m& k  X8 A
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );$ O& p# T& i3 S1 D' k. H
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);& S+ G9 N3 K& W  X* C
  49. }
复制代码
* N# E2 h! J# V, C
: V8 u/ G" V0 T, H( }; Z1 j
* X; d" `1 ~/ B( ?
收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版