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

【经验分享】STM32CubeMX—定时器中断实验

[复制链接]
STMCU小助手 发布时间:2022-5-15 16:30
定时器中断实验
/ e4 P, @. k& Q9 E一、实验说明
: i% v2 O' ]' U; a& y5 f4 u9 Q4 ?
    平台:STM32F103RCT6
9 e5 |) @3 V/ T, R. r& o2 ?    本实验为定时器中断实验,使用STM32cube max 配置TIM3定时中断。
7 B0 m* z" ]" ?    注:实验中使用了串口,所以可以沿用上一个串口中断实验的配置。2 w( q- {& N; I* y1 r
二、实验操作
) |8 |3 h5 O* h4 `1、STM32系统基础配置。: R8 A4 X! a1 P  ~: w  P
详见上一个实验的步骤1 – 4。$ Q$ q/ f. k% I/ w8 e1 n
* C0 G9 x: x  x- u! b) V
2、配置好串口1。
$ A) x# x# R/ n5 L详见上一个实验。9 m, Y" H$ i9 |& m1 m5 I( M3 |
+ X# T0 O% S9 |, Y, O
3、配置定时器, Y' E' ~& Y2 }! v6 i" z7 p% L
, `4 r  I; ]% t+ r. U8 c. s" {
DVZKX][EVOJXJT~MDEVAQTQ.png 0 M# W& S! y$ L6 O* Q" `1 O  h

# H2 u: @3 v9 j             如上图选择定时器3,出现如下界面:
  V5 m$ k" M- I# O" }/ m7 y5 ]+ T7 e+ j$ p( @
C$@(M_LC9`3G1{REM{9D3{J.png / S$ N$ b. y, n4 g
3 R8 N8 p6 U7 T" o' ~( I  S
            然后配置具体参数:
) x+ W9 B. D0 G8 s           上一步选择后就会出现这个界面,配置好分频值,计数装载值,注意,第三个箭头那里要使能(ENABLE)自动重新装置值。* ]9 {6 ]; b8 J6 C

/ h- X+ h" W' p) U- k L~26H)QXF$K5GUW[OH542QJ.png
$ z) _  V9 M$ Q
% l% \9 j5 m4 y9 t: N- T2 f! o4 T- H) |- q7 W* r- |  f& N4 M
时间的计算5 K( Y& K* x0 I
" `% f" n1 _2 x& n
2019071515214119.png # w7 a7 B) a- P5 v1 a' |

8 q, j1 i( g! h                     这里 Tout = (5000*7200)/72MHZ = 0.5秒,所以0.5秒进一次中断。
3 p% F2 S' z) Z8 C4、定时器中断配置
; {6 a5 N: y# I/ r4 Q/ o' @" W: P9 v+ V3 b
YVU@)GS{LF)6R{2[VK_K3%I.png ' L7 s$ \7 D8 I& x, ]
% p9 k$ }; f. l% J
5、然后生成代码( L; y4 |+ J. Y% K7 j
6、工程中添加代码
, }& v# }% o* l/ S7 B! S               首先要明确我们使用的是定时器的定时中断,也就是更新中断,所以要找对回调函数。
) r2 k5 L$ f& Z$ i! r, f
$ Z0 A1 h5 v: O                void TIM3_IRQHandler(void)  在stm32f1xx_it.c中
' X2 b4 Q2 C7 j# g9 N) p( d9 N7 W% C- R0 l- z9 x
                HAL_TIM_IRQHandler(&htim3);
& ]1 ^4 T2 k. Y0 \2 v  o5 G/ I; q- k4 ?5 z6 g( |: o+ W) R# }
                HAL_TIM_PeriodElapsedCallback(htim);
3 d* D+ ~% h- `7 x' @# ?0 J& N" J( Y  s
                __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)   ( }, b/ M( l. H& ?; V& n
这就是这几个函数的跳转顺序,最后一个就是更新中断的回调函数,把它 复制到TIM.c中,如下图6 J$ D, W; P* }" B! q- l
, u$ S7 K- _5 t
`ROH295X@[AFK60`BCI3)M4.png
1 q1 @6 G; z* X2 v, f& O, c% J
& T% }' v; Z1 T8 ?  M7、开启中断! z- P, A$ G: j4 K& w3 {9 e! Z0 |
                HAL_TIM_Base_Start_IT(&TIM3_Handler);
; N) Z. u  {; X5 j6 ^+ L  C) y; C& V8 m1 K( l
8、测试,在中断中写句输出测试一下(实际开发,不会这样干的。)
1 R7 S: O2 o6 n1 O
1 q) x: D* w8 `& |. Q- M# E4 S OSK5@A[BRQ8)%5IF2Y@WR9O.png
2 ]7 A! r9 h* K7 R% B# t0 {+ }& u1 T
因为要输出检查下串口。6 J( u% G2 r& U3 j- a( D* g
下载程序,测试:
/ [5 d) C$ M! w- t/ x9 \1 W结果如下,0.5秒输出一次。$ L2 p& r  H  A1 Q! {, z+ \1 _; b

8 x( F. S# c& a4 D5 o% b J68@YXTF6~PG$ZH@V$VF~`K.png 2 `- l4 L1 c: P8 u

4 Q: I# F4 q4 I5 ]& P8 l% i/ E0 |& F* u6 F# T9 o  X- u) O

4 [" T6 ]" _- E1 a( q8 ^: c
收藏 评论0 发布时间:2022-5-15 16:30

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版