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

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

[复制链接]
STMCU小助手 发布时间:2021-12-30 12:42
功能简述0 _, M+ y0 e* N' F" z
主模式TIM2的中断作为从模式TIM3的时钟输入/ ~% O: P% e8 ]$ E; V" H
(级联定时器)+ t5 E, f% ?! F5 m, o- Z- H+ S
红灯亮6灭5 频率1hz
; C  T. G# ]9 J/ N3 i1 m* Y$ ^- A% z绿灯亮3灭3 频率0.5hz( ]: P% Z% ?5 m

3 I; b$ n. C% q9 y5 n! E8 e2 b: `STM32CubeMX配置
2 h0 O+ F; |! {/ JSTM32CubeMX版本:4.27.0
' S) M* G/ U6 B2 O1 u* }  w配置流程:1 z  c# d6 f+ f7 }) x3 S+ x" x
Pinout界面选择并开启需要的LED控制引脚8 c6 o1 l9 U  S' f# E
Clock Configuration配置时钟树5 m1 U& x3 E" b( G
Configuration界面配置System, N+ `# q8 q- l' y9 e' m( c# u
生成工程
) ^" X1 b+ C; c9 @8 y" M6 Z) Q
! h' |6 q3 D' g% HPinout配置
7 }, z; m& E  r, n/ J; b. B! J
  m+ X" f' X% b/ x
20181114183530542.png
  b8 z- b$ B8 \
, k# k  B8 v2 D8 Q9 Z
LED输出PIN配置,TIM2,TIM3的基本配置
6 f" `- H/ U3 G5 F: j; h9 R/ S) M& |; q: B& n! u! z4 y; f1 x
Clock Configuration配置

( ^4 |; @( K+ s! G1 m& {: I8 k$ W3 ]- ^  i
20181114183747397.png
8 f1 t. F$ Z: {1 N
8 ?# ~) Y/ X4 e% l
开启系统时钟,设置TIM2、TIM3时钟(APB1)
$ o9 v  ?5 i4 d- A  I, c; ?" E+ m* K" p
Configuration

/ S6 x4 k, |2 o; A4 K% A8 G2 ?1 D
20181114183850446.png

  H1 |. U9 o+ p: W2 m. k左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等)5 M$ e& l. F. Q. S, X6 d
右侧是系统及外设模块的具体配置/ ^8 W3 p& u* Q, P9 i: [% y% \7 t
9 W3 t& ?# A+ r# t! n. K  d' O
GPIO
% ~5 B$ M4 ^5 I; q6 W3 \$ X. L  O8 w# a4 y$ r' S4 {( i: l
20181114183903908.png

% G  m  a( ^2 b. A1 f- Q# N9 h* i4 Y& h% `. h. X: i7 X; ]% x
输出配置% `' U& d5 f' ?0 i' _$ t3 P' ], X

2 l) h' W& j' t) V" ~TIM3
. z, `$ i' F0 U+ c4 D
2 Z% i8 F& i8 r3 z5 r! O4 |& ^
20181114190455873.png
: c1 |$ R5 D3 \3 ^0 `, h
+ T, l# p2 T" y+ V6 T
周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )# |* W2 ~) ?# z" A7 M  K, b
分频:62499
0 r5 `. J* Y, H5 T( R: Z计数模式:向上计数  q- ]. z  p2 K0 f* @) H
重装值:99
6 V: C3 l0 k# y* C时钟分割:0 (数字滤波器相关)
: R4 b$ @9 U7 U; u% d自动重装:开启) v6 i/ Q; G) u8 [
MSM:关闭(开启将在该定时器使能的同时TRGO发出信号)+ d4 A9 v# e6 U. _
触发事件选择:更新
9 c  e! ?1 }+ u8 y+ j; y
  |* g- t. i* y
20181114191227123.png

* K% d, Y- M/ J4 d1 Z; q
8 n: o) c% \, A& d% B* L/ F( [& c
20181114184015462.png

6 a: y* c& j+ M. Z1 [# C" Z* N* y) p2 D: Z+ y% u1 d7 f3 p" _
TIM2$ T( J/ j: x+ P+ O1 R7 ]
# H1 ]2 |" T& P0 p. }9 R
20181114183942334.png
; ^; c. h- ?- M6 M3 j6 a, f
2 a  @6 K" H% L9 \2 n8 S
周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )
5 q+ U6 o. U7 D' _0 a0 @. i5 Z分频:0/ O- u- C# Q* {
计数模式:向上计数( H) J' v9 `& z- R
重装值:1
+ X8 S9 Y( @/ v' L+ F9 {时钟分割:0 (数字滤波器相关)- s- j9 m9 f9 b% o5 K, `0 t& j
自动重装:开启
+ M' }7 s( N  `由于TIM2作为从定时器,它的时钟实际是TIM3的中断信号' o1 y0 b: }7 V% L8 t( H

4 Y0 ?0 m/ a9 v; E4 w* o
20181114183953321.png
% ^8 `* G4 [# i' e) i, Y4 s

0 C3 v) }0 n, o1 H2 m0 v$ iNVIC
. _& f! I. v) z! P6 M; Y* y( I3 p( G0 {# L2 s
20181114184036691.png

9 @( r- u9 z  u/ T( X6 D( H) z/ t8 N0 I" \- ~; q
20181114184042347.png

' h9 u: \- G. d) Y; w/ P$ t; [
) p  I* N- {& Z: ]代码部分- E1 m, h% `2 ^4 f& D+ A1 D
main.c
/ x9 y2 W) A; q. X* Y

$ ?: v$ r% B% |" c
  1. /* USER CODE BEGIN 2 */
    # B$ j2 @& ^( |( f# G
  2.         HAL_TIM_Base_Start_IT(&htim3);
    ( u6 V2 m' q, K$ m# Y% F
  3.         HAL_TIM_Base_Start_IT(&htim2);6 u- y( @1 z7 T" p5 ~" Z6 B+ T* A
  4.   /* USER CODE END 2 */
    4 x7 l3 Y  H0 c1 C: D  l' y
  5. /* USER CODE BEGIN WHILE */9 x8 ^( z: ]5 F* d. E& N- r0 C
  6.   while (1)& z0 l0 F% L) S3 f0 v2 o1 l7 `" j
  7.   {1 p0 J# N1 a! \5 x
  8. & b! k. u6 l# i
  9.   /* USER CODE END WHILE */
    $ w2 Z$ t' q: q* r7 Y+ R% `

  10. ) I& ?- `: Q6 J
  11.   /* USER CODE BEGIN 3 */" T, Y) W" g% v* x" G, Y4 u, }
  12.                 HAL_Delay(10000);* Z* Z0 W) E7 I, l0 Y
  13.                 HAL_TIM_Base_DeInit(&htim3);  L5 s, h( \9 Y" p( y9 d
  14.                 3 h  v7 r8 W% T! u6 x) r  o
  15.   }! N6 S, h9 o  r" ~+ s
  16.   /* USER CODE END 3 */
复制代码
+ e! ?! Z! N4 q3 a
stm32h7xx_it.c
1 |6 B3 H* d  w/ L
  1. /* USER CODE BEGIN 1 */
    , `2 o- C7 @) ]1 n; O
  2. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)( p8 E  w3 n  q) D
  3. {* l4 |; Z/ a3 |/ ~5 g7 O
  4.         if(htim->Instance == TIM2)2 Z* `5 x* x( w" |- m' [
  5.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);) W' R3 y  ]0 \% R1 d6 H' F
  6.         if(htim->Instance == TIM3)
      s  B+ A, H" c8 S! A5 x
  7.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
    , R# X- M! v( h2 z! m/ m8 g
  8. }
    7 X" ^' n! O2 u, [5 j6 b
  9. /* USER CODE END 1 */
    ; j& _$ p# r8 w( i
  10. / [: W0 r- K- K9 t' K
  11. / ~- v/ Q3 \! a, R. K/ }- E
复制代码

. Q" D$ Q& j! X0 |
' \& u. @/ h. P( c  B9 w3 _: @9 F* V, U/ g9 y3 {/ p& {
收藏 评论0 发布时间:2021-12-30 12:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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