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

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

[复制链接]
STMCU小助手 发布时间:2021-12-30 12:42
功能简述8 ^" s7 X; [0 K' H
主模式TIM2的中断作为从模式TIM3的时钟输入
/ g5 e' C7 H( v% o' V(级联定时器)8 c: l" c0 s, ~: W- T) S+ _
红灯亮6灭5 频率1hz0 l3 c) \1 [/ j0 |& P& b
绿灯亮3灭3 频率0.5hz
: c! W4 Z$ o) u3 O/ t% B* v8 S6 j7 d; N' h5 N: \& {( W3 t
STM32CubeMX配置5 C3 z, |: q  E7 B0 D
STM32CubeMX版本:4.27.0) w" M' q1 t5 l4 W
配置流程:
1 \& S) R6 a4 j- Q$ T! Y/ uPinout界面选择并开启需要的LED控制引脚
% B! m4 O, H: S2 }% k- X6 g  AClock Configuration配置时钟树
, x0 W4 f3 z/ q* V* h1 ~- UConfiguration界面配置System
% z' j: b0 V2 a4 k生成工程0 d6 u; |9 I0 O6 N2 B& W; B- C9 ~
$ h+ ]& Q; [( Y9 ?3 x$ e
Pinout配置
9 O! c, o( V4 F4 o9 a+ B, b: Q1 M/ G9 M& Q4 X8 J
20181114183530542.png

5 r8 ?! Q8 v  W2 j/ z) F& k8 O! ^1 t9 a  Y' d& E9 S" U
LED输出PIN配置,TIM2,TIM3的基本配置9 Y0 ~2 I1 M( \1 v  O8 M

3 |9 Y: Z# [- @+ Z& `$ F% cClock Configuration配置

3 Z1 A% S2 a) a8 `4 u1 H) Z. f: _9 W* f! e. F
20181114183747397.png
7 U, G( T  k% H# }  Y4 {# R. ]4 |2 t
' K9 \( l6 I' X( Y* |
开启系统时钟,设置TIM2、TIM3时钟(APB1)! q5 J+ ^# T6 ^# ]

3 ]0 p  Y3 F$ J" n2 bConfiguration

0 q" O4 {  [8 W' T9 h6 I  b
20181114183850446.png
% f3 o5 @2 n) M6 d! v+ ^
左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等), A/ v/ ^0 F* [3 Y' c0 W" E
右侧是系统及外设模块的具体配置+ I( h9 l: W5 P8 K; K7 w5 B& j

7 [/ S9 F  t8 Y: J) A9 }, VGPIO
: @+ |) S" w! |' W" H
% q" u7 P: g1 b8 w) k/ I( @1 z. E
20181114183903908.png
& H3 d/ l/ D  ?
: g# Y! e: y9 R
输出配置% s$ c% ~% a2 F# w) y
# b5 M- d; A- [* K
TIM3
, @) [  N" m2 P+ p! y) ]: q1 V6 ?$ p8 ]' l% I" `2 i8 I3 h  u
20181114190455873.png
; H6 c0 S$ W3 l8 I! Z1 Z
2 W; x2 Q2 n. h0 z1 ~
周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )
3 R$ W9 f0 w9 j- i8 a" Y分频:62499
' g0 f2 @4 h% T. j; c计数模式:向上计数/ t1 l, ?0 s: Q0 _/ L
重装值:99
0 m) Y# X8 f: w  X! M" \- u' Z时钟分割:0 (数字滤波器相关)) \7 T! X# N& J$ b
自动重装:开启* V; w1 |7 o% @) C, A* ^
MSM:关闭(开启将在该定时器使能的同时TRGO发出信号), {! s' P6 k. {+ N
触发事件选择:更新
7 b/ x$ y) ~% B* h1 j0 e) x& \: |7 B4 S! Z% e. l
20181114191227123.png

3 @0 d; X' ]9 a9 C) `7 W
" X# s3 f5 x8 x4 s+ X# c2 V
20181114184015462.png
. B' U: f: |( e( I

0 o0 K, F$ t( x6 S" rTIM2, _0 Y  q- S9 D8 M' h: H; I0 |0 b; u" N
- `* u6 X7 a# b5 K; Q- k8 d
20181114183942334.png
6 e& E* g* H, B2 b

2 E0 I7 ]6 r/ i3 l( @4 I周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )
; U$ n4 `8 Y) N2 k3 h分频:0/ o* x1 D' W- g) z9 G5 S
计数模式:向上计数
: J6 I1 J0 r  |5 S! @重装值:10 _$ q# ?5 _+ p! J0 G: ^1 g
时钟分割:0 (数字滤波器相关)6 ?2 B. C7 |/ c6 ]% U: g
自动重装:开启& |% h3 b7 r& D! M
由于TIM2作为从定时器,它的时钟实际是TIM3的中断信号% P/ E" r  o$ J8 n% c( X

9 z9 B+ `4 _% _
20181114183953321.png

) G6 ]0 v: s; ]6 n7 |/ \9 P
0 u3 E/ O5 I, B9 W7 \" O* X5 cNVIC& \7 r# T4 y3 g  _; u
( g, Y3 r% @4 O  t
20181114184036691.png
% _  D4 w1 D5 e1 A
- a0 e% K) b5 t3 _- L
20181114184042347.png
- j5 [" w* F* k1 r! a4 l
: z) \- S. k# H+ U. O
代码部分: f5 u# e1 U! j1 I" X- |8 e) {
main.c
" d4 y+ s1 t7 }+ ^4 _

$ X8 j- ?$ t! t/ R, M" b
  1. /* USER CODE BEGIN 2 */
    " y  m, }5 a! r8 F) F5 U
  2.         HAL_TIM_Base_Start_IT(&htim3);6 a' D; Q1 B9 ^4 I5 g+ `
  3.         HAL_TIM_Base_Start_IT(&htim2);
    ( F/ v0 ~4 \2 p# U- x' b
  4.   /* USER CODE END 2 */$ ^, H' _! l1 u" x& F  A) y
  5. /* USER CODE BEGIN WHILE */- H" c8 a. k* K, ~. H) Y4 y, e( c
  6.   while (1)
    $ P! E1 h6 X2 h' }; _+ _6 _* Y
  7.   {
      X/ K7 K2 ~' F1 R8 b- m1 ^" w8 B* S

  8. + }( x0 J/ A5 Y' p- Z- Q* M; w$ r5 o
  9.   /* USER CODE END WHILE */
    4 K7 G7 e: F4 f

  10. - y" I4 R/ a* }# h
  11.   /* USER CODE BEGIN 3 */
    , F2 ^8 V; Z# u5 ?6 W
  12.                 HAL_Delay(10000);& [! {7 y# K1 c/ a9 Z
  13.                 HAL_TIM_Base_DeInit(&htim3);0 N" V2 F1 N& [$ [! l7 `( m
  14.                 : v# u, K# q# p+ U; ^8 E8 ^
  15.   }
    / x; }; @4 c: |# Z) ?
  16.   /* USER CODE END 3 */
复制代码

- \8 m+ y+ G& y1 Q$ k: h" k8 Nstm32h7xx_it.c
+ e% o+ ]( V* V& H; k/ t' w
  1. /* USER CODE BEGIN 1 */
    4 g+ v$ z7 b; q% g) ]  v" s
  2. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    ; s6 a/ {( K3 z/ b/ `3 ~
  3. {) a% d3 i9 F4 e+ h: p( q
  4.         if(htim->Instance == TIM2)0 b( `$ Y* G, c; v$ c
  5.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);  o5 |, n, C. D" \1 L. B: @2 \
  6.         if(htim->Instance == TIM3)
    0 Q9 q+ I. P: b5 D; A$ b
  7.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
    7 P: R# T; @$ z( G! Z- w
  8. }! k& S; H3 r4 i/ l. W# F$ G0 h# u- [
  9. /* USER CODE END 1 */
    , R* h' \) W5 R, [
  10. & ~) S- x; T: D

  11. " D6 b( _  \- l: v2 q
复制代码
' u; H7 @1 B, I! M( x" R) {$ G* I4 S/ s
5 b# F. ]7 D6 I& x: I

8 z; z1 ^, i$ q5 h* S
收藏 评论0 发布时间:2021-12-30 12:42

举报

0个回答

所属标签

相似技术帖

官网相关资源

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