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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断9 |8 W1 i! T1 a' [7 u. A
1.TIM2初始化
7 N; g5 P, A% N" JHAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization
0 P9 _+ Y7 ]" X# G& K! Z3 k4 C2 _1 Y4 V
2 [# s) h/ {( B! N7 w- ^( V$ d  M
  1. /**
    ! x. X" l4 [% H& @7 P( F% I
  2.   * @brief TIM2 Initialization Function# }! F9 f) r+ E9 s4 @( r1 ?: e' t
  3.   * @param None
    ' H. c0 b0 B/ s
  4.   * @retval None! f: O) v6 |- V3 c' k
  5.   */% g/ d2 R- }3 l2 {
  6. TIM_HandleTypeDef htim2;( m$ {. {$ |' y. R3 _* T$ B. @2 P
  7. void MX_TIM2_Init(uint16_t time)
    & n# ]. V# N& @4 q
  8. {! c' n; B! }) I  k
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
    ! |- f" v2 M: H: c
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};$ E$ q( n% `5 F. R$ V0 l5 d  Q: p

  11. 9 V3 D. z; n$ c: n
  12.   htim2.Instance = TIM2;
    % I7 O. q; t( O8 Y$ ?
  13.   htim2.Init.Prescaler = 2000;0 u9 o' y  v8 |/ D; }7 ?; g
  14.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
    ) k) U- l3 y" P
  15.   htim2.Init.Period = time - 1;8 v2 F3 [5 u! e; O" }
  16.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    $ A; q5 L  K' W
  17.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;1 `7 k' s" ^' g1 b1 _  x1 O
  18.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
    / e) q5 ?# B+ [5 u( w; ~9 A
  19.   {
    8 }# _- X) [6 T, T9 C" _6 ]2 x# y
  20.     Error_Handler();
    $ B7 g. i  U3 O9 i: h
  21.   }
      |0 T5 S9 e" _3 }$ D9 G
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;0 u9 n, f  c7 [) b* w9 F4 ^1 R
  23.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)# M; k( I9 l/ r# C
  24.   {9 K* ~) g2 x, f' p* d
  25.     Error_Handler();8 e. h( K; v" I; }2 k& m. a" t9 A
  26.   }
    $ a9 J4 ?4 p) q+ j
  27.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
    ( I" j+ E  r! g$ x9 L
  28.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  O1 m; r1 p2 P! M- @" u
  29.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)+ M  k: N7 ~6 V& F+ L4 ~
  30.   {3 v. h0 g" L. {8 y2 G! R
  31.     Error_Handler();
    ' z, r% J& ?) _# \0 \* T2 P, k
  32.   }* C6 @$ M3 D3 _* P- b
  33. }
复制代码

, q+ S  X2 |' E4 V) Z2 z. k2 c' A2.TIM2 中断处理函数
. N% f2 A9 _% b( @  J4 G5 l
  1. /**3 Q: W# E) ~1 c" O! s
  2.   * @brief This function handles TIM2 global interrupt.. \' T- L' B: L) |% N) |
  3.   */
    3 Z$ K' u! t3 t  }/ W& z7 ^. ~6 ]* B8 b
  4. void TIM2_IRQHandler(void)$ \0 b6 H* I. w5 P: w% z4 J! z
  5. {
    * p, f1 _  J/ Z. Y$ ]4 z/ b) E
  6.   HAL_TIM_IRQHandler(&htim2);
    2 p- a/ o3 G4 X" A3 y- W
  7. }
复制代码

6 F5 J6 x7 a) r+ p$ a2 K% n$ F0 M3.主函数main
+ Y) [# e! I7 O- R& q+ E  Q
  1. int main(void)
    * [) q' v' S! t8 {. Y& Z
  2. {
    ( R2 V" F, I$ f0 g% M3 M: _
  3.          HAL_Init();
    / K1 |3 }/ d5 i$ V
  4.     /* Configure the system clock */
    3 k! C9 O) t8 l, @- n* k
  5.     SystemClock_Config();  X3 i! L9 k% x# m  w
  6.     LED_Init();//LED初始化
    , w3 r9 U: {4 }" _& ^
  7.         MX_TIM2_Init(1001); //1s一次. ^4 x/ Y1 i9 [' e$ O) [
  8.         HAL_TIM_Base_Stop_IT(&htim2);
    . u; S9 L  [1 v$ [7 O& E
  9.         HAL_TIM_Base_Start_IT(&htim2);
    ! f% P9 z- N1 H5 h: U  M" x
  10. " n3 R8 w) |+ h) q1 l# X
  11.         while(1)$ C$ p# d& w) w( J. {  P- \
  12.         {}6 W) j+ \3 M, e  A
  13. }
复制代码

" t0 M) {2 X' d5 |0 m" r1 }4 c! D- H9 i4.TIM中断回调处理函数
8 ]: p9 z2 v% y( ?. |4 M
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    1 j; f% q' V+ \- |  O: o
  2. {
    8 ^& j; x0 T! [2 N+ m% a1 \7 u- D8 s
  3.     if(htim == &htim2)0 i% O) }) G- e2 A6 _& P/ [
  4.     {
    0 T) K' q& u; e
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);2 f; e) K% v) {6 t, T/ w8 u
  6.     }; m- R9 ^+ O8 D1 [3 {
  7. }
    - ?& P* Y+ X! `4 L9 f( s
复制代码

' s9 u- b3 [) X$ I
赞 收藏 评论0 发布时间:2021-11-15 22:02

举报

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