從串口中斷,到外部中斷再到現在的定時器中斷,越來越感覺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,只是開啟了定時器,導致定時器進不去中斷里。。。
然后重新定義定時器回調函數
一定要進行判斷,判斷的方法也是固定的如圖。因為這個回調函數,是所有定時器共用的,所以要判斷是哪個定時器執行的中斷,否則會亂。
定時器中斷就成功了。