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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:7 u! R- X3 x4 _4 c

/ x4 W5 v5 N3 x3 p, |- F
20190806093803594.png
  u% W( S' J  B  a0 }7 E- U

- x- |( v; h: m, T3 C! t( o
20190806093910148.png

1 s% r4 }6 F. `- W# R+ N
; Z' m' E: x' h3 p- M0 M5 o! R
  1. //时钟系统配置函数
    1 Y/ [+ [- W. s# d9 J: M! t; I
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;$ J7 V$ Y5 A& u
  3. //
    6 N5 ?, Z: k7 c- \
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));
    , a) s$ x* g0 W: _# T
  5. //SYSCLK =
      c( x5 P3 g; c5 I% e" u
  6. //Fs 8M
    # k0 \7 [" p8 A; E$ `+ U1 R, J
  7. //Fvco: 8M2 g! A& E% e, l. i5 p9 X
  8. //SYSCLK: 系统时钟频率 8*8/2=32
    ( B5 B  S9 b9 q
  9. //PLLMUL:倍频 8
    5 Q' s8 Z! W7 H/ I5 f1 b
  10. //PLLDIV:分频系数 2 / O4 ~/ V- H" ], @4 d" A9 H) `4 P9 q
  11. 7 v. K- Q. x* c
  12. void SystemClockConfig( void )
    7 Z* L* u  t. n; Y! `
  13. {
    ' }: X2 y9 Z, \- c  @5 ?
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;; q- r7 I/ ^6 J# l  m
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;
    + w2 v# ^/ l; q: \+ O! d5 y' H  O

  16. * p" @( K/ e7 c# _4 ~( Q
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();: v5 e/ A) {; Y
  18.     __HAL_RCC_PWR_CLK_ENABLE( );
    ; H8 j6 L7 O4 {( |0 Y

  19. 6 |( h# Q+ w% M" K1 q+ ?
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );   
    ) z# J3 B! }  v6 D
  21. + l: s) o) L1 w" ^
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M
    ( ^* @3 Z% H2 C6 F
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE- A4 N4 y5 k* ^% E2 e
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL" _7 u- j* I* b+ v% d$ U% z& v
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源( W, S! B! ?% ^4 N7 h1 L
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频) m6 t" L! W# U9 E  G/ v0 b  i
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数
    2 N0 d+ L8 a# \' o" I
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )
    1 X% m, G# D2 z2 {; q
  29.     {
    " o$ ?2 G5 R. h
  30.         assert_param( FAIL );, R1 p& k# F6 Q
  31.     }( [) I9 y; g+ t: |
  32. ; P1 c5 N6 p8 t% Z) u6 Z
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |: @6 x3 \1 e; C9 s7 U7 x) u
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;1 b; P! P; I: y! _
  35. 2 {+ H4 a9 o) T* Z
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源
    6 m  C% N" D( T4 N2 Y2 b
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32
    ; P+ t* L; a8 u2 b* _1 B0 q
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    , J" r+ r5 O4 d% A0 e
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32
    6 `0 O+ N5 K3 [1 o4 z
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK )
    / N) x- z, S0 _; r
  41.     {0 ]" \! p! i  {
  42.         assert_param( FAIL );
    $ n1 C- r' [' s% [/ X6 u: l2 x& C
  43.     }
    ; _8 a: m$ H0 N" X

  44. / b) ~5 N( @" F* {/ L9 ]/ ]
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );( ^" u6 U' }( {4 r4 E3 Q
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );+ u5 d$ ?$ f2 ?- ~. Q" Z
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );4 Z, F& x5 e9 ~* w
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);
    ! @: t& y5 A  K. _
  49. }
复制代码
1 c  A* J% z3 E8 A  I# O4 z/ M( Z

0 b: f; H8 T; \# w9 n2 p. v8 R
. v, j& f3 \& u5 \; L
赞 收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答

所属标签

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