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 注:实验中使用了串口,所以可以沿用上一个串口中断实验的配置。 二、实验操作: ]2 D6 d( Z7 k: U6 z. L% s# O 1、STM32系统基础配置。 详见上一个实验的步骤1 – 4。1 ~8 D3 x( Q4 J6 ?' O: \: P$ F# p 2、配置好串口1。$ O! m; u+ h3 h0 X 详见上一个实验。 3、配置定时器0 E/ L! d+ |7 L! R& \0 L1 o
; u% T5 y/ J d, ~& U, x 如上图选择定时器3,出现如下界面:2 ]' \2 r7 _9 j1 V; z
: D/ x1 M8 p @: w" r 然后配置具体参数:' N, n# S$ R: [ p. O 上一步选择后就会出现这个界面,配置好分频值,计数装载值,注意,第三个箭头那里要使能(ENABLE)自动重新装置值。7 g4 X. Z4 h9 W % k& w' m- ~: K# n
时间的计算 % Z! h8 j% O: ]: E/ h
这里 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
% \" P r- E, E" }" r 5、然后生成代码0 Q6 R6 k. S# g2 m0 P7 C 6、工程中添加代码 首先要明确我们使用的是定时器的定时中断,也就是更新中断,所以要找对回调函数。& P$ y) z& Q4 p7 o ! Y6 E% p' p* ?& j) s$ E- x void TIM3_IRQHandler(void) 在stm32f1xx_it.c中 ; ?1 T ]; Z4 c HAL_TIM_IRQHandler(&htim3); HAL_TIM_PeriodElapsedCallback(htim); 0 c, Z& y2 @% | __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 这就是这几个函数的跳转顺序,最后一个就是更新中断的回调函数,把它 复制到TIM.c中,如下图3 I: c7 g% a$ i, ?4 }! m$ u9 |7 X ; t' g# A" p( u/ m
& ~" H3 `1 o% R: j 7、开启中断 HAL_TIM_Base_Start_IT(&TIM3_Handler);" R' C" e. Z$ q X1 _8 N7 d 8、测试,在中断中写句输出测试一下(实际开发,不会这样干的。) : g/ U3 l" M) n P/ r
, r) c' m* E9 }" h 因为要输出检查下串口。 下载程序,测试:7 o2 J( T* f2 c) ]* S 结果如下,0.5秒输出一次。1 c) Q" C1 z0 k , {8 n' n1 w" }& x3 h
|
经验分享 | 利用TIMER定时和捕获功能实现编解码演示
STM32 LSE 不起振排查指南:五大核心原因与快速解决方案
我心中的ST中文论坛
经验分享 | 利用STM32 TIMER实现同频跟随输出示例
2025软件工具兔哥知道
经验分享 | 利用STM32 TIMER实现同频跟随输出示例
经验分享 | 一个基于TIMER事件的中断响应话题_续
经验分享 | 一个基于TIMER事件的中断响应话题
11张图学会STM32定时器!
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
微信公众号
手机版