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

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

[复制链接]
STMCU小助手 发布时间:2022-5-15 16:30
定时器中断实验2 y2 [. ?- n* q, T2 S6 f5 h$ ^
一、实验说明

$ U& \/ Z4 D7 R+ i; z    平台:STM32F103RCT6
( r6 S  r( x. @- [$ _/ N+ `  u    本实验为定时器中断实验,使用STM32cube max 配置TIM3定时中断。- b# }& I2 U. Z: r+ }
    注:实验中使用了串口,所以可以沿用上一个串口中断实验的配置。
! @) t% w4 ^. w/ d% N: c+ e二、实验操作
3 g3 U! P% o3 ]: e1 e1、STM32系统基础配置。
$ s% a, l# R# x$ z6 L详见上一个实验的步骤1 – 4。
& z+ V/ B' O1 N1 }- ^0 D% t
- a8 k1 o$ `. }1 {/ i8 e7 X2、配置好串口1。7 y2 S$ ^+ ]: R1 D* f/ l! p8 O
详见上一个实验。
0 |5 V* k: `$ f4 }- N# ?; y' W0 H+ T( v: L  Z5 m* P
3、配置定时器
& W) o/ j" V6 m, K' G  ?% z3 f4 _$ A0 ^9 X9 _, g* `4 Z
DVZKX][EVOJXJT~MDEVAQTQ.png 7 {! O$ @  j8 @' |( ]

* \8 [* E, g4 w# ~( p             如上图选择定时器3,出现如下界面:- v1 c3 x% p9 |! \

; b1 [- {, j$ h) l/ P2 Y9 y C$@(M_LC9`3G1{REM{9D3{J.png 2 n7 w8 a' O  x# s# I4 }( ~

* e" g4 w* `* C  `3 F( g            然后配置具体参数:
4 u7 i4 W6 h7 R! O           上一步选择后就会出现这个界面,配置好分频值,计数装载值,注意,第三个箭头那里要使能(ENABLE)自动重新装置值。' B% a, ^3 O: J$ _7 v8 q
3 P6 p8 P& H! N* ?7 A( A% \: @
L~26H)QXF$K5GUW[OH542QJ.png
( A( G& G' o7 U' q# f* H6 e" n
+ l* x2 ~4 S" L% y4 |7 ?
0 ~# r: G' g6 k* c5 x; ?1 Y时间的计算2 @) X$ n* T2 |! z* J
. F/ l# l$ [5 Z* u
2019071515214119.png
; h$ w& X5 J1 `5 j& \$ I1 y
5 ^0 g. d8 l* L; K                     这里 Tout = (5000*7200)/72MHZ = 0.5秒,所以0.5秒进一次中断。  r# J  M- m- h8 B& K0 S+ S- W
4、定时器中断配置
& [; L3 q0 X# ?) D1 [( D2 L- X' Q, B* t& ^1 a' y  p- U( e
YVU@)GS{LF)6R{2[VK_K3%I.png 1 S7 D% |$ t* N. x$ T- l  C
6 |7 Y# ]3 ?/ _; H
5、然后生成代码
9 x- u* z, O, _, I; U6、工程中添加代码
. b0 j2 N/ M- U; _% w               首先要明确我们使用的是定时器的定时中断,也就是更新中断,所以要找对回调函数。; y" J$ {" N# A" L6 P/ h
& l/ T- s9 L+ R: f  F" [
                void TIM3_IRQHandler(void)  在stm32f1xx_it.c中
5 l; j& N. O1 e, X1 w
0 @, r: K! Z; \) o                HAL_TIM_IRQHandler(&htim3);5 Y( ~& |& R: i- ^

& A9 m% l8 ^" [; v                HAL_TIM_PeriodElapsedCallback(htim);
( _9 l& {: w' n' m; l( X9 s% S# J1 p
                __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)   - _" u; C, ]- x9 U
这就是这几个函数的跳转顺序,最后一个就是更新中断的回调函数,把它 复制到TIM.c中,如下图
: K, a) c& M- C% o( ^  x3 x- g2 N5 Y$ z9 }# [1 m: D
`ROH295X@[AFK60`BCI3)M4.png
' n( Z8 O6 P( g+ o4 y6 @
# z. H3 \# f8 D: G7、开启中断
  I" k' Y# X7 \( Q( ~9 j                HAL_TIM_Base_Start_IT(&TIM3_Handler);: E  ?0 s/ m5 [1 m0 l2 r1 U

2 N6 ^' d6 f8 P1 c0 n5 ]$ K* |8、测试,在中断中写句输出测试一下(实际开发,不会这样干的。)+ g" t; {: ^) E, w1 [( s: s

; }3 C0 K' m' \ OSK5@A[BRQ8)%5IF2Y@WR9O.png 3 W, |. I; {: D3 N& p

% O9 b7 w; s" q% n2 {因为要输出检查下串口。1 }% N) y6 k4 J: g3 m
下载程序,测试:( p/ r  ~% ?5 ^6 Y( v: Z
结果如下,0.5秒输出一次。
1 j2 E$ }* _, ~) X( B5 w" @3 T1 f* c4 A3 B- X
J68@YXTF6~PG$ZH@V$VF~`K.png ' X! c+ S) m! }+ i

0 M! H# j2 q7 n/ H- v1 [* h; {( M9 _+ \5 }* Q

9 a9 b5 y+ ~. e) ^7 I  T+ T
收藏 评论0 发布时间:2022-5-15 16:30

举报

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