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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 21:01
MCU为stm32l0系列,时钟配置如下:
/ p% Q. K, g& p* ^% @7 Q( _4 Y" x3 m# A: i" N: z6 ^' Y' @) P
20190806093803594.png
' ~3 q, @; V6 x: M& K/ ^
& q  n1 H& O/ G5 l: k( ~9 J
20190806093910148.png
, C- |( Z! T: I# U3 Z' y, J) f

; Q2 M, U/ S, X2 x1 O
  1. //时钟系统配置函数4 c7 [- p) w$ B' ~' Z" ~
  2. //SYSCLK=Fs*PLLMUL/PLLDIV;7 M+ ^" J: ~  k) Q& H2 m
  3. //
    3 ]& {7 `( x8 _
  4. //Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));
    1 T& |& K" [- H/ m4 g1 n
  5. //SYSCLK =
    ! N$ k+ n9 N7 g
  6. //Fs 8M
    8 i2 c% T' W1 a  V) T
  7. //Fvco: 8M2 B4 X. V( u# n0 l* y' @) o
  8. //SYSCLK: 系统时钟频率 8*8/2=32) h3 Z: P8 O8 n& @8 s2 `
  9. //PLLMUL:倍频 83 R4 H  ^; _" [# j  h
  10. //PLLDIV:分频系数 2 ; |. u+ x( W: K- m( _& t, o
  11. $ t- W4 b4 Z& E3 p0 Y$ ]
  12. void SystemClockConfig( void )8 o! z0 x) T8 I1 I0 c7 P
  13. {2 m; D6 [( w( L3 t$ w5 m( p
  14.     RCC_OscInitTypeDef RCC_OscInitStruct;5 h' p9 L& [  Y6 h
  15.     RCC_ClkInitTypeDef RCC_ClkInitStruct;
    0 q$ C4 }7 q# @9 a1 W
  16. % j  e8 d' G5 g. M/ v$ T2 {
  17.     __HAL_RCC_GPIOH_CLK_ENABLE();7 q, r' ~9 r- `# E6 k  n; o1 k
  18.     __HAL_RCC_PWR_CLK_ENABLE( );
    ; I) T9 d1 Z; L1 E! q8 e- t5 m

  19. 5 C2 {7 I& u/ o- m0 D* a
  20.     __HAL_PWR_VOLTAGESCALING_CONFIG( PWR_REGULATOR_VOLTAGE_SCALE1 );   
    2 i2 ]! o: }8 F; J
  21. , p2 c3 o+ N- j. ~2 ^
  22.     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;    //高速外部时钟 8M
    8 S# }% {+ H1 `
  23.     RCC_OscInitStruct.HSEState = RCC_HSE_ON;            //打开HSE
    3 E& W7 H5 }1 D/ f
  24.     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;        //打开PLL
      ]/ z" B: p  W# x
  25.     RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;    //设置PLL时钟源
    " S2 Z- v+ N2 A
  26.     RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;            //8倍频3 [- d0 Y  ]- l, l2 P, [+ j: L% [1 O
  27.     RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;            //PLL VCO输入时钟的分频系数( i4 s3 w, [: d, X
  28.     if( HAL_RCC_OscConfig( &RCC_OscInitStruct ) != HAL_OK )
    " r6 p" _  I! P+ d
  29.     {4 A0 B2 U9 N% W& \; C+ ]- s
  30.         assert_param( FAIL );
    ! d0 g( ^- ~+ Y7 I' r# d( R; O
  31.     }
    8 h* p% O: Z9 o

  32. % ?( @/ ^( Z7 i) W" i" S
  33.     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |
    % B3 [! {: Q$ C" @8 K
  34.                                   RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
    : Y) f0 T2 @! M! i# h

  35. $ y0 Q6 d! b4 |# X- @$ F3 h& {
  36.     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;        //设置系统时钟源
    3 x, V  h3 A8 f9 @6 m2 c, B
  37.     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;                //AHB分频系数为1 32
    + @5 Y+ \" M' f4 R$ m  m
  38.     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV8;                //APB1分频系数为8 4
    # \2 t" M' T! c% N! H& F2 W8 {
  39.     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;                //APB2分频系数为1 32: b& v) ~! h; Q: |$ A* n: [
  40.     if( HAL_RCC_ClockConfig( &RCC_ClkInitStruct, FLASH_LATENCY_1 ) != HAL_OK ). g* ~9 f- l" v7 A# Z9 I4 a7 p
  41.     {" T7 V& r9 p' o- U. M7 I
  42.         assert_param( FAIL );
    - A1 M0 F, ]0 L5 A/ x# ]9 X
  43.     }) E/ O" u3 U3 Y8 Q" h+ X. ^
  44. ( W. L2 g7 f8 Q2 d6 b
  45.     HAL_SYSTICK_Config( HAL_RCC_GetHCLKFreq( ) / 1000 );
    5 w- e. E8 |) I0 {; ~
  46.     HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK );5 d4 q) D5 N+ A6 ~3 J
  47.     HAL_NVIC_SetPriority( SysTick_IRQn, 1, 0 );
    4 T) p' `$ f4 I: O# t3 b- _3 _: V: A
  48.     HAL_NVIC_EnableIRQ(SysTick_IRQn);8 T- n: t1 w/ C3 V
  49. }
复制代码
9 j! x3 s8 l& A# f/ @

( c  d6 C4 c" d/ p' \3 I3 i7 ^- I+ \1 }$ j& I1 C; h
收藏 评论0 发布时间:2021-11-15 21:01

举报

0个回答

所属标签

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