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

【经验分享】STM32CubeMX学习笔记——STM32H743通用定时器

[复制链接]
STMCU小助手 发布时间:2021-12-30 12:42
功能简述
9 b2 @- Z0 G# V; x2 d6 [主模式TIM2的中断作为从模式TIM3的时钟输入. `& C5 y. q3 X" W+ P, e
(级联定时器)
0 R" w7 w% u, V& l红灯亮6灭5 频率1hz5 e, c: @" V2 |$ t; J* v
绿灯亮3灭3 频率0.5hz
$ v; B7 I. B( P( l* ~9 X7 H" {6 h2 r: T
STM32CubeMX配置
$ L9 G; T$ t- a9 E( c- ]2 WSTM32CubeMX版本:4.27.09 s& A( @) m& g( X0 f% C# D! x
配置流程:6 o) v( O8 O- P8 B
Pinout界面选择并开启需要的LED控制引脚
; c# v8 x' ?' c  H$ b2 u6 s% AClock Configuration配置时钟树
# b2 C6 ]0 f; q) Q# n3 h0 YConfiguration界面配置System" O1 @1 ?* t+ z9 P0 [5 C# C
生成工程. g! l- g  U. s. t, G& G; D

$ l, ~# U8 e1 S! K/ x* g8 fPinout配置# T3 j$ L# I# M1 M6 E6 r
  v# h' G1 _1 }# ~" e# p
20181114183530542.png

8 U/ L8 i# {# \* [+ V: v+ m. J0 D  K  Z9 E
LED输出PIN配置,TIM2,TIM3的基本配置; N- E# ^- \/ Q* w, N7 l

1 v: p$ Q) o% m! ~- aClock Configuration配置

# S8 }( y5 W; ^, b. e( z9 n7 \6 B; w5 Q. K5 k
20181114183747397.png

% X* z: z7 {: m' o/ E5 i, L0 p! A3 J7 x" h: V/ Q
开启系统时钟,设置TIM2、TIM3时钟(APB1)/ S& ^. f0 u$ h) c) M0 W& I
2 Q& x; m6 D: g9 V* w2 `
Configuration

4 K8 ~5 }0 C# `4 c, x
20181114183850446.png
. x4 m* K3 Y* w, F5 O0 ~! S
左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等)
' h" F1 Z. h. n右侧是系统及外设模块的具体配置
, c( d, S. O% E0 e9 F6 K0 p; S
0 Z+ L3 V2 X6 D' X9 u0 GGPIO
& \; z) A# F; L9 X' p* [
; n7 _- C/ W$ }: e% S
20181114183903908.png
! p8 r  i; w) ^( L

5 j7 w* g: @5 b* u8 _& h6 H' z输出配置
5 l8 T1 o7 f( m4 y' y9 f* _; [% H) p
3 u1 k3 o9 U8 J1 f% k0 A( wTIM3
& {- {& x; l  A6 Z9 d0 K5 {0 S' z. V! f6 {4 |
20181114190455873.png

  S8 Q3 a  ~4 v7 f) e. x5 p6 r( b* i5 c3 L  d2 q  l
周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )- I- S9 K4 }% M4 L1 k
分频:62499% ]4 j$ P$ A; ]2 t9 C# A2 D9 X) @
计数模式:向上计数
# h  Q. |. H: R重装值:99( p6 @7 w, u0 O& R4 A  b- H2 X; ]
时钟分割:0 (数字滤波器相关)7 Y6 s: |0 B4 s1 r2 W
自动重装:开启
4 v5 S9 P2 ]. oMSM:关闭(开启将在该定时器使能的同时TRGO发出信号)
$ W# }7 S, U! t5 V. T触发事件选择:更新0 \: m* z, U9 T7 e' {4 t
0 j* |8 K7 k2 S* p) h8 p( l
20181114191227123.png

: B9 ~0 X0 C' Z/ _) \3 t& N4 p% W0 }1 `; V$ x- a3 C
20181114184015462.png
9 I# c/ a* J1 H  e2 ~" O
+ j: w( F4 n3 |" o2 `
TIM2
9 d2 ]5 J4 Q2 t* N! r" ~  o) s( U' c  V6 m7 q2 X: i- g+ t
20181114183942334.png

! r: ]' K! q+ t
% [* \" f" k! f, V: s周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )
/ U5 @0 L$ Y+ T  p# Z, E分频:0
7 g- K9 ]3 D1 k, x* S* s计数模式:向上计数
9 c" v( U- F4 n1 X0 Q+ m, Y& y- X重装值:1# T/ D* R$ b# {& F( J
时钟分割:0 (数字滤波器相关)
: D) M1 r. B: B1 f7 j; g) Q自动重装:开启
& \- T' @# Q# n' y' P由于TIM2作为从定时器,它的时钟实际是TIM3的中断信号% T  q6 v% q( D9 M. y# `( a, g
3 Z2 i! r# Z% f; x$ _
20181114183953321.png
& t. J# n3 u( R

4 H9 W& R7 R  s- H: TNVIC
+ Q5 a) T( `2 E- {* @: M, q
  z- U2 Z8 J1 I1 E3 F) |
20181114184036691.png
1 Y2 Q: d* `$ |' s7 _% M
4 X9 {4 p$ q/ l) ~3 ]
20181114184042347.png

& ~0 R; N6 V" ?' X+ Z0 M4 T
( L1 b7 m) b- l; A代码部分& Z2 l$ l/ n1 J  ?& G
main.c
7 G/ ~5 K0 z3 U) Y: N/ {
: @4 b5 [* o1 q6 W; P1 k
  1. /* USER CODE BEGIN 2 */: a" |" @; r5 C  H9 ?& q& K5 z
  2.         HAL_TIM_Base_Start_IT(&htim3);
    9 f9 g( G. k3 [  ^& C6 k! G0 v
  3.         HAL_TIM_Base_Start_IT(&htim2);
    ' E# a8 X; `. E% k! [, Q7 Y* L4 t, H# [
  4.   /* USER CODE END 2 */
    2 r7 ~6 J" {. [7 P" U  H9 P
  5. /* USER CODE BEGIN WHILE */
    , L0 q0 e, Y: e' Z
  6.   while (1)# C3 Z2 A* v6 X5 P: W. w; a" y! ?
  7.   {: S8 T$ t+ y+ A9 T# j
  8. 1 U* W2 N9 }  |  c' s
  9.   /* USER CODE END WHILE */% [: W7 U) J) y5 Z, X! [
  10. , k/ h7 n$ o+ H! Y
  11.   /* USER CODE BEGIN 3 */) w* b9 ~$ z* _! c" U
  12.                 HAL_Delay(10000);. I$ c5 m  S  }) `, Y- s
  13.                 HAL_TIM_Base_DeInit(&htim3);0 ~9 V( I* Q1 I  J2 f8 N6 B
  14.                
    + I8 e: ^! `; J
  15.   }& d) F" G% q% ]/ I9 }" Y/ [5 n
  16.   /* USER CODE END 3 */
复制代码

3 G8 `4 j2 R2 ]* b# \+ wstm32h7xx_it.c
0 e0 U% `5 L% \9 C6 i3 P6 w+ d  z- d
  1. /* USER CODE BEGIN 1 */! d5 P( h0 V+ K3 j$ M- N
  2. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    2 u2 Q- h  j3 e) O9 v* F
  3. {6 _2 h% ~  M; ?. q
  4.         if(htim->Instance == TIM2)! [8 [% I  Q1 ?1 R
  5.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);3 C. y: o2 l) P% X, C7 n# Y/ s7 j& f
  6.         if(htim->Instance == TIM3)
    + ~0 i/ G# B+ {+ v* V% h  f
  7.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);; u- }8 L! ~; H" w6 x
  8. }
    : s: l- p5 W4 M" T9 b6 n
  9. /* USER CODE END 1 */) h' j& N, g. C2 p6 D0 m% l1 x& h8 t

  10. ' ?  r% {! ~8 o: q0 I

  11. ) u9 }  L- p# C: ~
复制代码

( q$ \8 C4 [7 X; ]  h* }8 y" E/ K. Y/ V4 b
1 J/ x) D/ r: ?$ z+ C5 S. v6 V: U
赞 收藏 评论0 发布时间:2021-12-30 12:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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