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

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

[复制链接]
STMCU小助手 发布时间:2022-5-15 16:30
定时器中断实验& _& c7 \' e7 X8 h$ ^7 B
一、实验说明
+ h9 g6 ~5 D+ Q8 _7 s8 \
    平台:STM32F103RCT6: N) X0 T) p  O6 L% T
    本实验为定时器中断实验,使用STM32cube max 配置TIM3定时中断。  s! u9 y! q9 X
    注:实验中使用了串口,所以可以沿用上一个串口中断实验的配置。
' C2 b( s) r, S9 v: G二、实验操作: ]2 D6 d( Z7 k: U6 z. L% s# O
1、STM32系统基础配置。
! m0 ?/ Z/ c7 J4 O详见上一个实验的步骤1 – 4。1 ~8 D3 x( Q4 J6 ?' O: \: P$ F# p

5 F+ F+ d9 ]! t: P6 q2、配置好串口1。$ O! m; u+ h3 h0 X
详见上一个实验。
, C1 c) [1 w8 o4 Z) {
( Z5 F& s! {" {" E+ W& k7 g3、配置定时器0 E/ L! d+ |7 L! R& \0 L1 o

6 R* |" p) {6 M5 J, G DVZKX][EVOJXJT~MDEVAQTQ.png
/ t$ T2 @2 X- w+ r& L/ R2 F; u% T5 y/ J  d, ~& U, x
             如上图选择定时器3,出现如下界面:2 ]' \2 r7 _9 j1 V; z

0 T; f! d; R. l C$@(M_LC9`3G1{REM{9D3{J.png % V- H8 o& R, v- z% j2 p: u/ R( Y' B  ~
: D/ x1 M8 p  @: w" r
            然后配置具体参数:' N, n# S$ R: [  p. O
           上一步选择后就会出现这个界面,配置好分频值,计数装载值,注意,第三个箭头那里要使能(ENABLE)自动重新装置值。7 g4 X. Z4 h9 W
% k& w' m- ~: K# n
L~26H)QXF$K5GUW[OH542QJ.png
1 m0 k8 n& C; E$ A( I8 T
- g& E) Q. ?1 r2 k4 C& c% O0 }0 f
  T" y' s% l! r8 Z4 w时间的计算
- N2 @" a/ x" H& K' x% |0 ~0 V0 g% Z! h8 j% O: ]: E/ h
2019071515214119.png - \/ m5 s  b7 l0 b

* |1 @2 p9 R" l  L+ n1 r. U- l+ y                     这里 Tout = (5000*7200)/72MHZ = 0.5秒,所以0.5秒进一次中断。. U0 V( |5 u3 m4 x6 K8 h" Q
4、定时器中断配置% F1 a5 }/ m4 T
9 W" R! k6 F" }" y, e* C
YVU@)GS{LF)6R{2[VK_K3%I.png
: Y4 U) h/ s4 P% \" P  r- E, E" }" r
5、然后生成代码0 Q6 R6 k. S# g2 m0 P7 C
6、工程中添加代码
! h& w$ R# y6 ~) {0 y3 I               首先要明确我们使用的是定时器的定时中断,也就是更新中断,所以要找对回调函数。& P$ y) z& Q4 p7 o
! Y6 E% p' p* ?& j) s$ E- x
                void TIM3_IRQHandler(void)  在stm32f1xx_it.c中
5 O$ X& b5 t9 w! q& S; u1 ^  `; ?1 T  ]; Z4 c
                HAL_TIM_IRQHandler(&htim3);
/ m; S: ^& ~+ Y
/ @1 n1 k7 B: x0 l: S) J                HAL_TIM_PeriodElapsedCallback(htim);
/ {% F, q* U7 U! V- N" @  i  F# |0 c, Z& y2 @% |
                __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)   
  |; x9 e; L- p  [8 W1 G 这就是这几个函数的跳转顺序,最后一个就是更新中断的回调函数,把它 复制到TIM.c中,如下图3 I: c7 g% a$ i, ?4 }! m$ u9 |7 X
; t' g# A" p( u/ m
`ROH295X@[AFK60`BCI3)M4.png
! C% V' k& Q; K' m  d& ~" H3 `1 o% R: j
7、开启中断
0 s5 q& D7 \; R; G' Y2 G* {                HAL_TIM_Base_Start_IT(&TIM3_Handler);" R' C" e. Z$ q  X1 _8 N7 d

& d" Y" T5 [0 a0 U0 _0 M0 m8、测试,在中断中写句输出测试一下(实际开发,不会这样干的。)
  d8 K' D8 ~5 X4 n! d: g/ U3 l" M) n  P/ r
OSK5@A[BRQ8)%5IF2Y@WR9O.png 1 ], ?8 D/ a# e5 u5 v: {
, r) c' m* E9 }" h
因为要输出检查下串口。
8 ~" t" Q8 i% r+ S+ z! x下载程序,测试:7 o2 J( T* f2 c) ]* S
结果如下,0.5秒输出一次。1 c) Q" C1 z0 k
, {8 n' n1 w" }& x3 h
J68@YXTF6~PG$ZH@V$VF~`K.png 5 e) a& l9 R  t. b1 b1 Z

! R* u; t9 R9 ]; m0 s
( L7 V7 i5 C" K) E7 i. ]' s6 e
- N3 e9 e) Z  O: H# V  f
赞 收藏 评论0 发布时间:2022-5-15 16:30

举报

0个回答

所属标签

相似技术帖

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