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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断
1 m$ F1 R. f! j) w2 b1.TIM2初始化
+ |$ S( l5 I0 [HAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization8 n( O1 ~+ L5 n6 d/ H: X( i

& |0 x# V% f: h9 `! s
  1. /**
    ' p7 q; T2 |- ]7 b- @( j& H* N5 |
  2.   * @brief TIM2 Initialization Function* u6 T/ k: \  \/ m- J7 ?2 c
  3.   * @param None) Z3 h5 _* W/ f$ i
  4.   * @retval None
    2 j* @& s+ O, Y0 g
  5.   */
    ! v) V" _' U& J( e0 H
  6. TIM_HandleTypeDef htim2;
    : B8 C( |7 ?. S) f
  7. void MX_TIM2_Init(uint16_t time)8 }5 |9 p$ X5 Y1 V. ?2 N$ T' o
  8. {) L8 s/ s$ r9 S3 _$ e; _  d
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};- b! G3 u  Q! \& I7 O& Y. _
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};( U" \/ R& X" s8 }

  11. 5 O  \: r! G9 w# @( j& G& O  ^2 x) H
  12.   htim2.Instance = TIM2;; y5 g7 J$ Q- U6 C% @
  13.   htim2.Init.Prescaler = 2000;
    / i- q, p3 @% g2 q- n
  14.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;- l! T6 z; Z' j6 U, M& d* e. J
  15.   htim2.Init.Period = time - 1;
    % s" K  l% |& e5 P& x) h* n
  16.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;% u" @( h% ]0 q3 t/ V7 \
  17.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
    . {; \4 D& K9 ^. w
  18.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
    ! c- N: m& w% V6 M
  19.   {
    " X! D2 v7 M9 `) j
  20.     Error_Handler();
    6 X1 t0 c2 j2 V) v2 l, G
  21.   }( L: Q2 R2 I8 w) l5 H: ~
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;/ V* x4 e3 C! ?/ Y1 p  x8 |" o4 u9 i3 z
  23.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
    6 S$ o/ T6 {* E" w4 x5 D
  24.   {
    ; H+ m8 B1 L. e$ V& V( r1 D
  25.     Error_Handler();9 z" I8 c: {. @0 t# c1 I; O
  26.   }
    % Y  k7 U9 r* u; h
  27.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;1 |1 T4 t* y2 @9 j& B5 Y
  28.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;2 a% u5 b- z- O2 l+ g; r4 j
  29.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)% E% a* B# a& f1 n" E; U
  30.   {( e  Q: f5 j( |
  31.     Error_Handler();
    ' X% L" n8 P4 g5 v+ ~) P, ~
  32.   }
    . l7 v8 c" m" _$ V$ D
  33. }
复制代码

7 q& ^8 K8 c% t1 y2.TIM2 中断处理函数
1 q+ B' R# u: @0 k
  1. /**  A6 u) U! _# j8 N1 K  j* Q! R4 x
  2.   * @brief This function handles TIM2 global interrupt.
      G. f. X, I. i3 `
  3.   */
    " ~. R8 |% n, J$ x5 `
  4. void TIM2_IRQHandler(void)- P0 s+ f0 `9 {5 w& F) y
  5. {
    * j- s% Y" h, W7 V* s
  6.   HAL_TIM_IRQHandler(&htim2);
    * m  U& ~) ~4 ]1 c4 |" U
  7. }
复制代码
8 @3 r: ?$ t6 q& A* E
3.主函数main
: L+ }1 [) S% j; r  N
  1. int main(void)
    0 W: y8 N6 a3 c" J! T7 _# n
  2. {
    : q  }1 j* L0 Q+ d
  3.          HAL_Init();
    / m( N! F, y& P8 m6 x& V! W
  4.     /* Configure the system clock */
      g9 B+ k4 ~2 A
  5.     SystemClock_Config();
    ! H0 }4 w7 k. I. O
  6.     LED_Init();//LED初始化' y; x! _% `' b. M) c) N: p/ X4 P2 L4 O
  7.         MX_TIM2_Init(1001); //1s一次; ]. w9 Y$ S* T; D1 m4 o, E
  8.         HAL_TIM_Base_Stop_IT(&htim2);
    : A; f: d  H; q* V% l
  9.         HAL_TIM_Base_Start_IT(&htim2);
    9 j2 W1 Y0 u1 [- g

  10. , I# s+ [  h5 f+ }2 w
  11.         while(1)
    ! r: T8 t4 y. u" T% M
  12.         {}
    5 T$ R+ d  A0 d2 x! T. W" u
  13. }
复制代码

8 C9 N8 N/ K( w1 u/ e4 M4.TIM中断回调处理函数8 o, N6 g, }# c% q3 N( k8 S$ {% T
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)7 m1 L# l* U& {- G! s9 }9 |
  2. {) R0 @8 _' C" z2 Q8 J7 H
  3.     if(htim == &htim2)9 P( a9 ~. L$ n% s
  4.     {9 N& m4 o( i% }0 A) F9 w9 H- v( k
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);  Q# _0 E2 v" f7 g( I
  6.     }/ [0 z7 ~7 E0 z5 e/ K9 a
  7. }5 ?% b) c: L+ T1 h8 ^! h9 z
复制代码
, x* i* e8 W6 Z/ X4 F4 N% ?" @9 b
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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