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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:6 x: [. l+ [$ U0 h( i9 h

3 G% c5 P9 F( Q" _
20190806093803594.png
4 x- M; r1 Z$ u; J  H
. M0 Y$ p3 }' Z. K
20190806093910148.png

/ j$ R  ]' f6 |% Q2 x
* Y9 Z# S3 G# a! D, G  ^. U. l3 J
  1. //时钟系统配置函数: Q, ]5 \. v4 [8 h. Q9 s+ t5 z
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;! q6 p( J  s5 `% h; y
  3. //
    : L" F$ o2 v, @
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));  Y8 n5 g* U2 |; @7 a! C5 ?
  5. //SYSCLK = 6 b$ |/ k4 h/ B
  6. //Fs 8M
    ' i2 \9 W. X3 j% h
  7. //Fvco: 8M
    4 ]. G; B  R& [, l" T' c( p: @2 Y- B' N
  8. //SYSCLK: 系统时钟频率 8*8/2=32
    ; ~; _( ^5 p& e
  9. //PLLMUL:倍频 8
    * j, s0 r6 N/ N6 C! H
  10. //PLLDIV:分频系数 2
    - }/ R5 T! j/ [( {, w! H1 E5 ?

  11. ' M& W$ D) r3 `4 Z9 \
  12. void SystemClockConfig( void )# T* L3 r9 d5 Q" o+ g+ a
  13. {
    1 g: Z' C& @& P+ F, D9 ^' Z
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;
    ( E( u  B5 T% B, C* z
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;8 U2 f! @  P! X" E% L' |' p4 K) |

  16. # i/ m# B1 n9 h$ G& E. {
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();  [" h, s  B/ {# o- _3 U
  18.     __HAL_RCC_PWR_CLK_ENABLE( );% o1 b% Q5 f$ S5 [( Z  O

  19. $ H  q7 M0 Y+ c7 ]) h$ ]2 q
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );   
    . X) }; R7 |9 I# A, c$ p& E

  21. 5 b8 F* A  P8 Z! A( G3 Z
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M
    - l! w' I3 P& v
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE4 Q& U) D; b7 m7 Q, n" l
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL: m: l4 o8 l) Y) B4 V$ `0 k/ q
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源( |* v# Q  u2 K& P* `; M6 @. n
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频! ^0 T4 P3 P" X8 i
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数9 |* H" u7 K8 i# D8 i7 N
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )
    * X, M- q- b; @$ Z) Q7 x& p4 ~5 h
  29.     {- z1 j0 u* ~) Y- [4 }
  30.         assert_param( FAIL );
    5 w3 t- ]* M9 w' J/ }5 E/ ^
  31.     }
    % T2 i% \$ k8 W; j$ w

  32. & |$ B. p. t0 `  U
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |! a; a5 T, b, h( Q- ~7 _
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;: E' ~! ~7 y; r2 D8 X8 d

  35. , K& F+ v9 W# Y, `
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源
    0 \9 F+ B6 V1 I* l' s
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32
    # f6 q' w# Y, X4 G0 _1 g
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    3 A4 r# U0 c3 v
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32
    . ?! f+ n' U3 }1 B8 E3 N! v7 }
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )" ~- K( b" d: Q8 t5 E
  41.     {: ~: |/ o. R0 a- V
  42.         assert_param( FAIL );
    . `; Z. w( l( \# b5 C
  43.     }9 D: Y3 v2 ]# u6 d8 m
  44. 6 C+ x7 e; F$ T4 A) p4 J  x
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );
    " H( [$ B( C: A' I# T& G
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );( a$ I' M4 v( X( I, X' @
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );2 T" B& f3 F! g3 k& L& T' H; @
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);
    ) ~, f: B0 I1 N9 K3 [# G+ ?
  49. }
复制代码
: z/ L3 |6 c% L9 V" e+ ]
( f$ z2 i( f5 }

& @4 A2 f/ c: `2 u0 B: W$ O2 A
赞 收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版