首页 > 技术文章 > STM32对HAL库的定时器中断

zjx123 2019-11-15 16:12 原文

从串口中断,到外部中断再到现在的定时器中断,越来越感觉HAL库应用比较好用,虽然一开始理解上面有点怪,但是网上查询一下就能够学会。

定时器中断分为两个重点,1、在应用CUBEMX时配置定时器的分频数以及时钟树设置  2、生成初始化代码后添加的相关函数

 

 

 

 

auto-reload 自动重装值,使能与否都可以,因为计数器溢出后会自动重装。

 

1.在CUBEMX中的时钟树很好去理解,有时间一定要重新整理一下时钟树的构成和作用。

定时器的定时时间跟分频数有关,定时器频率为 f = 72M / Prescaler / Period    定时时间T = 1 / f

Prescaler 和Period一般设为某值-1,因为计数器会溢出一个的原因。

72M需要看对应IO口处于哪个时钟线上,在cubemx上可以查看,在通过时钟树查看频率。M为6个0

 

2.完成初始化代码后,要开启中断程序,并且重新定义中断回调函数。

 

 这个函数就是开启定时器中断的函数,一开始我漏了IT,只是开启了定时器,导致定时器进不去中断里。。。

然后重新定义定时器回调函数

 

 一定要进行判断,判断的方法也是固定的如图。因为这个回调函数,是所有定时器共用的,所以要判断是哪个定时器执行的中断,否则会乱。

 

定时器中断就成功了。

推荐阅读