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

【经验分享】STM32L0系列之【TIM通用定时器】

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断
( N$ F5 a6 b+ S/ X- J! V1.TIM2初始化
" n. \# \8 t) J% |HAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization) M; W! e2 D' t2 c/ X6 h
& Y) [$ P- q1 \
  1. /**# O- H0 z( |! g( Z
  2.   * @brief TIM2 Initialization Function6 Q4 u2 o8 S7 K9 ^5 U" d8 d9 u* o
  3.   * @param None
    - l3 R; Z* X) K
  4.   * @retval None
    ' N7 _  V( m7 x+ x) r% F2 q
  5.   */
      |  [+ J- F1 d* \! \
  6. TIM_HandleTypeDef htim2;
    7 h4 S0 T+ Y* h0 C- @  @
  7. void MX_TIM2_Init(uint16_t time)( h. p  E& Y# f$ ?* W6 {
  8. {
      w2 i" q+ |1 a, h9 k
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};9 ^! K6 ^; H! F; J1 s2 i
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};7 E4 W1 t$ a% E$ ]6 _; X# D

  11. ; G# c$ @7 V5 N5 r' p# d' }
  12.   htim2.Instance = TIM2;0 s; Y! b% a3 y0 v/ O
  13.   htim2.Init.Prescaler = 2000;4 o9 x1 Z: |6 l, w$ o
  14.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;. J& w* D9 z. o, r8 J
  15.   htim2.Init.Period = time - 1;0 e7 s1 G' L2 c& {& R7 ^4 H/ D8 S
  16.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    ' E/ \3 o$ G6 }4 q) E+ W/ t1 v
  17.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;' x8 f/ j2 B% o# [; x8 x
  18.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
    , W- G* c- f. M
  19.   {
    6 x. X  y+ e  y1 `
  20.     Error_Handler();. @( y: |9 [4 p' d9 b6 p) T
  21.   }
    6 A7 O- j. @. Y3 u7 ~  _! S1 |. C4 q
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
    # E+ B9 l2 [6 e5 v, S3 }5 \
  23.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
    * L5 h/ j( z; m- `* L' N8 g& y
  24.   {
    ! s( t4 b! K, \
  25.     Error_Handler();0 E+ L: u, C% B1 v6 d
  26.   }9 @! ]. |. s) u
  27.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
    5 J0 A2 d% S  A, P0 j
  28.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
    # d6 _  {$ H5 e) Y
  29.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK); p( Q+ i( r7 c5 R! u$ {3 T
  30.   {
    * S5 V! S) V3 N) ~% V1 \4 |8 I4 h1 B
  31.     Error_Handler();
    * A8 V& O: M' o  Q: V; v! z) P
  32.   }
    0 H# w4 ?0 L8 |# m1 g
  33. }
复制代码

: D5 ^1 D4 s: Q6 h2.TIM2 中断处理函数
; u0 R+ q: X* _' N
  1. /**
    ' i6 C3 q+ l3 |8 g0 v; R
  2.   * @brief This function handles TIM2 global interrupt.
    ) V& v7 T, q& A+ v( S( z8 C
  3.   */
      j# N+ o5 _9 t9 @- r
  4. void TIM2_IRQHandler(void)
    3 w1 ^/ J. d2 V8 ?; a" }  r* V5 j3 w! x
  5. {$ t8 K( S5 c8 _6 [7 s
  6.   HAL_TIM_IRQHandler(&htim2);; c* h/ I1 _0 `9 Z# p, F
  7. }
复制代码

. a- N3 G& x2 W+ |. z& Y3.主函数main
: R/ Q, _+ P' y
  1. int main(void)
    8 L- z) ?$ u6 r' i+ I9 n  ^2 Z
  2. {" N) S3 O4 q3 M1 U
  3.          HAL_Init();
    " W" z, N0 l2 I$ h
  4.     /* Configure the system clock */8 O9 w& j2 h6 m" R( }
  5.     SystemClock_Config();! L% v+ ]$ e9 Q1 C% u0 L2 S
  6.     LED_Init();//LED初始化. v2 ]* k* f& g- l. g6 v% Q/ y, M
  7.         MX_TIM2_Init(1001); //1s一次2 h' R8 ?( i  ^" q- ?! q+ c5 e3 V. C( I# ~
  8.         HAL_TIM_Base_Stop_IT(&htim2);4 |  Z# o( X) g- C
  9.         HAL_TIM_Base_Start_IT(&htim2);
    & y3 }' t9 N9 v) j' Y$ r

  10. * f, @" v5 R5 B
  11.         while(1)5 j, n3 j. ^8 l
  12.         {}
    3 }% \" L9 L  P
  13. }
复制代码
6 C% C4 @/ n" v" v9 Z3 z3 Z" r
4.TIM中断回调处理函数6 M- @* u/ h  ~& u
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim), k6 m; a% g! ?, j+ \
  2. {- L0 h8 x4 S! q/ L* k  y8 O( Z# z
  3.     if(htim == &htim2)
    / |; ?( ]" v. S6 M# [
  4.     {
    - ], G( a+ n6 r% H8 z/ Y; F
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);
    ' Q) B4 Z! a' \0 j6 i. ^& k
  6.     }0 h' q3 ^( s$ C- ~. k7 p  j
  7. }
    * q6 ?0 Z$ Q" y; b# i% [
复制代码

. P# D3 J& e  e- O, y  \$ m2 D8 o
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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