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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断8 S/ v3 Y1 _- y
1.TIM2初始化$ a( O0 u- D/ m; j
HAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization! n  u3 V7 j+ t

3 u9 a! U2 i' @$ b- s
  1. /**- c/ e$ B  F3 C6 u) f6 o$ j# g
  2.   * @brief TIM2 Initialization Function# S- D% T" `) `( J. f) c- I
  3.   * @param None- W0 |, v8 u7 m, k) B
  4.   * @retval None
    / c3 i; O( \$ ^  L
  5.   */
    8 |1 @0 J. G8 u( k) g# Q. ~4 S; u
  6. TIM_HandleTypeDef htim2;4 b$ c' t- G, F& h' g2 N& C$ }9 w
  7. void MX_TIM2_Init(uint16_t time)  h) a3 x! C- J2 l, Q) E% D. X
  8. {3 `- h; a8 A3 P  _
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};% M# a% ^$ e' O8 s2 E+ n
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};( x' [7 |7 h1 V8 q% P% @1 A
  11. 6 B7 |" ?/ M1 n0 C. C; D
  12.   htim2.Instance = TIM2;
    / O) L9 I) t4 W# O) l. N
  13.   htim2.Init.Prescaler = 2000;
    , ]9 t4 Z- r' Q& l
  14.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;) v% g: A& F4 |: `) ~8 P
  15.   htim2.Init.Period = time - 1;# l% r* l! U) k7 \% _) Q
  16.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;& u* }2 d  N' ]3 ^9 v
  17.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
    # h6 N0 \6 m# O- \/ ~: C
  18.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
    2 C. h& N9 ^. k5 F+ n
  19.   {
    1 j$ ^: l5 g1 j7 t; V" m
  20.     Error_Handler();
    9 j/ t& y2 p  I1 e% L1 c. M- C
  21.   }
    5 G$ p2 D) s" l- ~
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;1 [% j: m0 G" `9 r; ]
  23.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)9 W$ g' T6 X$ G5 x- G6 g# _7 u
  24.   {
    & z. G5 ^- _, p, C
  25.     Error_Handler();/ k- W0 w/ c# B2 ?0 v' M' ]
  26.   }
    6 {" g" S2 ^/ v( Z# m
  27.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;: P9 o2 n% S2 I  \, T3 m3 ~7 f
  28.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
    ) ~" D% ~% T) y0 v- `
  29.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK), y3 @/ T8 \9 _( b! T0 A* \
  30.   {  H+ t* {# @1 O) B
  31.     Error_Handler();
    / y6 n* h7 f4 u9 [$ T7 J  ~
  32.   }7 R" G7 a2 n7 M; J2 _$ o! U
  33. }
复制代码

) ~- u" D' j6 j% l% _0 c2.TIM2 中断处理函数7 L/ w  F! {3 Y( L: x6 Y; \7 ]
  1. /**% e+ U" J3 |' f' B/ J
  2.   * @brief This function handles TIM2 global interrupt.0 y$ x5 \3 y1 M4 L2 q6 g4 v! W  F
  3.   */9 [/ d' I2 Y9 ]! K0 V' ^# [
  4. void TIM2_IRQHandler(void)
    2 a. h& m5 t" J' b, A( z7 \& \5 P
  5. {% m3 r2 S9 J" G1 c$ W1 }! n; c
  6.   HAL_TIM_IRQHandler(&htim2);
    % l8 m; I6 Q$ s) ^
  7. }
复制代码
7 E$ x$ _$ ~( T" i/ C
3.主函数main

1 G+ ^& L: ~% P& ?' }3 [# a2 L
  1. int main(void)
    % F' K/ Y& b1 Q2 D$ z
  2. {
    1 x# C( W& a( J! K) L4 H) x
  3.          HAL_Init();0 y9 B% a3 k7 @2 i
  4.     /* Configure the system clock */0 k1 ?1 `( V& E. o$ ^- x& v
  5.     SystemClock_Config();: p" d2 X3 \  a& l: F5 B, R
  6.     LED_Init();//LED初始化4 [; n( a) l$ W0 ]$ P$ Y
  7.         MX_TIM2_Init(1001); //1s一次% E# a1 A6 e! `) M; b% [# V
  8.         HAL_TIM_Base_Stop_IT(&htim2);
    0 J" S9 m: Z1 L# e; H$ i
  9.         HAL_TIM_Base_Start_IT(&htim2);+ L0 F, g3 I  G9 b9 s* \3 I
  10. / i3 H1 }( e4 n9 P# o' F
  11.         while(1)5 m8 c" s4 u: X' s
  12.         {}# z( E6 ]+ |3 f. h
  13. }
复制代码

' l' m( h3 f7 j2 `4.TIM中断回调处理函数) d7 U1 k0 x" I  ?, I6 A
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    7 G0 _$ P* c2 N% r! t
  2. {
    ) E  {3 X5 x/ E, ]8 k+ H. _& N
  3.     if(htim == &htim2)
    " p/ L' w( I1 Y$ ?! e4 x
  4.     {
    & P* v1 ^9 I  z, W( Q8 ?
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);
    - i6 m4 \7 t) P3 i% D
  6.     }% h7 k8 j: @  L- p2 k% W
  7. }9 ^+ L4 {  K; S" Y/ @
复制代码
. i) U: s: T# k1 O; c9 U
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版