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

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

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断
7 W. g6 P! p* C$ B- X4 U! I& N9 ^1.TIM2初始化! C* ^) i. d. Q: f, r7 y
HAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization. T7 ~: M8 J1 L

6 N( M& K0 O" C- @# a" I3 Q
  1. /**  e' I: q/ b5 P( B3 b! h1 b( X8 v
  2.   * @brief TIM2 Initialization Function
      \7 ^0 t9 O: D4 o; b
  3.   * @param None0 f6 [: z+ c, R/ s' _5 Q& F
  4.   * @retval None
    ! G3 e' m2 F$ m& ?& d2 }
  5.   */
    & a( Q( o6 a7 n
  6. TIM_HandleTypeDef htim2;
    $ u% c+ _7 o3 Z( p0 s! f* t8 Q
  7. void MX_TIM2_Init(uint16_t time)
    " d. M/ T3 @. c* z
  8. {
    . }& U! D0 q  u$ S: n# H
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};4 L/ ~- i, U- l* Y
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};2 Z  O% E- D, U' v7 t
  11. 3 [; {) h3 p1 R! X+ M0 W
  12.   htim2.Instance = TIM2;0 T. h5 i8 l, V+ D
  13.   htim2.Init.Prescaler = 2000;( \/ ^6 o9 u9 b" v
  14.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
    : e! D* u3 s/ D  l9 G
  15.   htim2.Init.Period = time - 1;
    ( v- d$ w  j5 h3 A; |
  16.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    - C8 J( q7 Z: n! ^2 ^5 T  P
  17.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;) c0 x. L9 x# L$ ]9 k# n) g
  18.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK); V  c) t7 ]/ f, o, z' B: j% ~
  19.   {
    . q5 B, M1 [+ A7 Y  ?
  20.     Error_Handler();
    2 Z: ^1 I6 L# G6 T& G0 k
  21.   }* v3 X, c  t# Q; u/ L0 W" }
  22.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
    0 G$ Z2 E  m; R! I7 R4 C) f/ O; v
  23.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
    + F1 _# B- |! b
  24.   {# m& o, J" Y; |
  25.     Error_Handler();
    + Q3 k" B: ?. P+ q1 U4 {
  26.   }% f5 \# p5 a! p; P. d4 V
  27.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
    ' Q9 N3 S* B& s; v) H4 ]8 L7 ]
  28.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
    0 o; P3 B8 t1 i0 }# F; I9 t
  29.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)' A, S- C7 n+ z0 }3 E! T' I0 {0 h7 K) F
  30.   {# D0 F. n5 R9 @! q( X  k+ [) H
  31.     Error_Handler();- a0 P( R9 U& Z% L& ^3 C
  32.   }8 m' s) [1 o6 s0 T+ P
  33. }
复制代码

  U9 }+ A; `, O9 U$ k) K  ?$ W2.TIM2 中断处理函数8 ^5 X8 o& j8 r
  1. /**
    1 ]# F( ]& J, \( c( D- S
  2.   * @brief This function handles TIM2 global interrupt.% L8 [% o7 W1 ?/ Y
  3.   */
    / |; @3 d' s& [
  4. void TIM2_IRQHandler(void)
    $ N& i  t2 n7 S* O5 g  W
  5. {
    5 [: m- T4 M9 K7 f* A
  6.   HAL_TIM_IRQHandler(&htim2);
    2 \& _- t, g. `5 x. K8 q
  7. }
复制代码

" [7 ~* C1 h" n" ~" e3.主函数main
  r: Y, G; ?! `8 h% H( Y: U' n
  1. int main(void)0 m5 g, }* `1 f; k
  2. {5 G* @2 k5 x+ C4 n' ]/ c
  3.          HAL_Init();& R# l( c2 Y! A! o
  4.     /* Configure the system clock */; K% S8 U! u/ j/ x" ]( V
  5.     SystemClock_Config();* r: \+ J5 S8 C$ L* k* s% i5 i+ v7 Z
  6.     LED_Init();//LED初始化
    % M! g% {) S, \$ C7 i, P% U/ o
  7.         MX_TIM2_Init(1001); //1s一次
    " @, R6 a4 p& s  T' D, @
  8.         HAL_TIM_Base_Stop_IT(&htim2);" x# o' N  V# R3 |& A3 j
  9.         HAL_TIM_Base_Start_IT(&htim2);" k  g5 M# P0 S& S% C( n/ p
  10. # ~3 S7 `4 b; N6 P
  11.         while(1)
    9 x; z* U4 W0 c: H
  12.         {}- W* v4 E8 a! _  F: z( \8 [
  13. }
复制代码

4 c) J7 t; \: k( L+ L4.TIM中断回调处理函数
" i/ @# q8 K9 {& f+ \- L
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    ; D) w& k- y6 {' [1 P: ~$ H
  2. {
    % u- M9 F( D9 d' o
  3.     if(htim == &htim2)1 [& c1 ^% T$ Y2 I/ t2 O' P3 K6 J
  4.     {
    # T) p8 I; L  {
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);0 M. U" p' X6 c
  6.     }
    + ^4 j  w7 T/ m. A9 p
  7. }) o1 s$ a& {! M  K' F  q. K! l
复制代码

( L5 T: u1 [0 d. K4 y& m+ X) f, I
收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

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