从串口中断,到外部中断再到现在的定时器中断,越来越感觉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,只是开启了定时器,导致定时器进不去中断里。。。
然后重新定义定时器回调函数
一定要进行判断,判断的方法也是固定的如图。因为这个回调函数,是所有定时器共用的,所以要判断是哪个定时器执行的中断,否则会乱。
定时器中断就成功了。