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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断" L; V9 W: N5 r* |8 k
1.TIM2初始化9 C5 \+ n( {  k' t! E
HAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization' S  c4 M5 _$ E$ P6 Q7 c
# @" P' J2 C& w- O
  1. /**
    5 f- X( _9 @5 X- _3 Y* @5 p
  2.   * @brief TIM2 Initialization Function
    + W# N" T' y  I: y2 V
  3.   * @param None7 V+ O* q. o/ d9 p' c) o1 m
  4.   * @retval None, Z. J  [' Y1 T( u
  5.   */4 P- O0 }; y- `9 u5 \/ C+ {
  6. TIM_HandleTypeDef htim2;
    ! w! a; @4 T* Z2 d4 V
  7. void MX_TIM2_Init(uint16_t time)
    5 I' A2 u7 B7 d3 s
  8. {5 m! L  t; ^8 o+ z7 e8 D8 b
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};0 ^1 L5 Z6 r+ |8 F* `
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};
    % k" n5 b6 J/ F, Q; N, M6 Z; r* G
  11. 3 J3 F6 K9 M8 N7 Y3 v  v; f' X
  12.   htim2.Instance = TIM2;# M. ~( a& b) ]. h2 J  X
  13.   htim2.Init.Prescaler = 2000;. W/ T% h4 @) O) d4 Y. s9 M: k) U
  14.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
    + D& z% D. m( x% J* z. r4 C1 ^0 {
  15.   htim2.Init.Period = time - 1;
    3 u+ {3 D9 J4 v& Z; J
  16.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    ) X/ N! L6 Y3 i, [
  17.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;" Y+ P+ Y% q, X( @! _
  18.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK): _& c  @1 h6 b7 M0 r# k* m
  19.   {
    $ |$ Y( K" P+ U! ?6 @* y9 j* O
  20.     Error_Handler();
    % e) y% s* i3 {6 I1 O
  21.   }
    * n. W" u5 l0 \$ B
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;$ G# ]' G5 [. E
  23.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
      n: m0 K$ f- |# S; h+ f+ p
  24.   {
    , @5 m" {, @( h. l: v
  25.     Error_Handler();
    & C& t! g# c$ i0 x4 M( C
  26.   }. s8 ^: n4 E4 o5 Y% S
  27.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;6 D& J* Z! ^! @, h) D0 X9 L
  28.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
    # ~. ?; E# e5 a) Q+ F' Y, G
  29.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK); F* a5 n, x7 c1 l
  30.   {
    ! K* l" Q. M% b6 x1 J
  31.     Error_Handler();' i/ m: c! e, Z
  32.   }3 ?) q  Q% |7 X
  33. }
复制代码

  T: Q3 I" _5 O" ~2.TIM2 中断处理函数
" B( e1 S$ q. c. X- Z
  1. /**, x: F& u7 f/ s3 _
  2.   * @brief This function handles TIM2 global interrupt.
    - ?$ F. g% o" j/ y
  3.   */) }9 r; r& H7 Z0 W  U& J
  4. void TIM2_IRQHandler(void)* v  l( @8 P) J! o) N3 a
  5. {
    * ^  O$ p6 m1 b2 v  h: G8 P4 c& |3 s- [
  6.   HAL_TIM_IRQHandler(&htim2);# g5 D2 k) p1 F  U  T5 N2 @
  7. }
复制代码
9 d  d& f/ i, F) f5 Z& k; Z, c$ t+ p) W
3.主函数main
% o6 u( x/ M: S# R7 N7 J$ f- b/ G' W
  1. int main(void)4 M+ F/ g1 c/ N1 P7 H
  2. {2 H% ^% `$ p9 n7 J
  3.          HAL_Init();
    8 l+ z- F4 f. A) T+ A
  4.     /* Configure the system clock */
    3 o& ]* k& ^$ t" J/ B2 F3 e0 E- n" ^
  5.     SystemClock_Config();- m- l2 U+ a7 Y& V- n
  6.     LED_Init();//LED初始化
    9 v: }. t5 w" P% b% A, B8 d
  7.         MX_TIM2_Init(1001); //1s一次* y3 V$ B, ]  ^) ?& V* M2 x- y8 v
  8.         HAL_TIM_Base_Stop_IT(&htim2);
    - u" S! V& l8 A$ e# F7 X
  9.         HAL_TIM_Base_Start_IT(&htim2);
      A" x- j' Z" Q+ Y1 T* f

  10. - f# I1 `9 q$ q$ n8 t  ]
  11.         while(1)) ]) U; ?' L8 ~1 l! r( Q* R
  12.         {}
    3 J5 E. [: t# q
  13. }
复制代码

) r, A: V& w; w  F* ]5 E: {4.TIM中断回调处理函数8 Q4 ^+ ]3 {1 ]0 m6 I
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    8 I  u  L% @4 h" y
  2. {: B4 W4 O, v1 R2 w7 ^+ k
  3.     if(htim == &htim2)  }' [- W8 C! g- f# |2 n
  4.     {( O( r" ^/ A% _" c" E! D
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);
    . q( W- T1 M( p, d  A% {8 b9 {
  6.     }: L7 E: B$ X8 `9 r  f) K
  7. }
    8 m. d3 _+ }& V0 u% e
复制代码
2 i$ h4 B/ k% _& {$ k" ^9 O
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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