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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:
- j  o1 h' ?8 r9 m/ Y! M9 S) i5 ~8 _
20190806093803594.png

& T: o/ ~" e; Y: M# t- ?8 R
; h) l9 ^! b' u  ]+ c4 N
20190806093910148.png
* s& b' J3 }6 I: y7 m, [. I

# `" x0 _0 e( A8 W- t. e
  1. //时钟系统配置函数4 [) c; k/ m' Y% }! B
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;. E8 c% t- e" h0 b0 K( I: s  P1 K
  3. //
    * w! q0 r% [3 O, ~
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));5 C1 [; ^* x/ ~1 Q/ [6 R8 v8 Q9 k
  5. //SYSCLK =
    4 _1 Y% M0 Z9 T& ?4 m
  6. //Fs 8M - ^2 G# a$ V4 o
  7. //Fvco: 8M3 C% O2 @3 V- M) l% u  j! H
  8. //SYSCLK: 系统时钟频率 8*8/2=32$ C6 f' r! ]7 \& D
  9. //PLLMUL:倍频 8
    : C1 _( r9 o2 |* A) r
  10. //PLLDIV:分频系数 2 5 ?1 W8 ]1 F) T: e( ~; E  {

  11. 5 K& W; `1 X& J, ]6 W2 S& `, ?/ r
  12. void SystemClockConfig( void )( m; K: y7 E0 n4 F" x
  13. {9 E6 j9 u# V3 H! l9 ]
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;
    / v6 L7 N/ O, ]+ ^2 H( N: k3 m/ g
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;
    " f: y/ ?4 a1 L8 h

  16. ( \1 l6 a! U2 ^- w  E8 |
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();
    * Y7 e% g5 V1 d/ G
  18.     __HAL_RCC_PWR_CLK_ENABLE( );
    4 x, p# [  ~0 f# R1 v

  19. % M3 h, k2 {2 S8 x! m- l- X- _
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );   
    9 N% I- `9 Q5 X4 z' u9 o& u

  21. 1 n; R, n3 J& O$ _7 h- A
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M9 i" n1 K4 W2 E, ^
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE1 @! y1 p& f3 K. u
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL0 a  B) Q; B1 g3 K
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源3 G3 {9 F3 |8 q+ y( _
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频+ l, N. G8 f" w8 q+ v0 q) k5 F; }
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数
    ; S2 O$ z, h# L& H: |
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )
    7 e; f1 V! Z: _3 [4 B7 x0 {
  29.     {- t) O8 X; O" I1 E5 ]% d5 s$ V
  30.         assert_param( FAIL );
    3 V8 ]+ h- r) @
  31.     }6 E. [1 s+ P; r
  32. 2 h2 A8 b6 }9 g* b. v6 s  K
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |
      z$ Y! `. Z' [5 P9 l% v
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;$ K0 ]7 c3 }, n( x

  35. ; O4 n- r( g, X8 x
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源
    3 [5 V" e3 ^4 g, g) _
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32
    0 v6 @; m4 P1 [% `/ F
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    + N# U. R& w1 c
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32
    1 \, b6 `0 o3 }" u. s
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )
    : q3 k' Q) M% H6 ?- h
  41.     {& k1 m5 C' L2 ^8 H% W3 }" ]; u
  42.         assert_param( FAIL );9 t  |5 I) v* ?- o. W  I4 Z
  43.     }
      ^* Q+ Z8 k+ `: l) r8 i
  44. . h0 `- ?0 F  n# r0 H; _- h8 L
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );
    ( L2 ]! ~; L# ?% M1 l/ U+ b
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );( d* y8 A7 S7 _0 c- y9 P
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );
    2 {, O# X. {6 h4 \! t  ~
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);
    7 ^7 a/ ?6 M/ \' H% O* t: m: e
  49. }
复制代码
7 Z: ?# \: T( t3 U$ N$ K  R
$ p8 Q# z( h+ ]" F
- j2 w( Y% W0 w& e, c, Z
收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答

所属标签

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