STM32CubeMX 定時器配置時鍾中的auto-reload preload


原文:

https://blog.csdn.net/qq_35629563/article/details/118675981

 

STM32的定時器開發基礎的時候,產生了一個疑問,這里不需要使能自動重裝載嗎?

 

 

帶着這個疑問我去查了一下《STM32 HAL 庫開發實戰指南》,在第 31 章 TIM—基本定時器找到了詳細的解釋。

自動重載寄存器 TIMx_ARR 用來存放於計數器值比較的數值,如果兩個數值相等就生成事件,將 相關事件標志位置位,生成 DMA和中斷輸出。 TIMx_ARR 有影子寄存器,可以通過 TIMx_CR1 寄存器的 ARPE 位控制影子寄存器功能,如果 ARPE 位置 1,影子寄存器有效,只有在事件更新 時才把 TIMx_ARR 值賦給影子寄存器。如果 ARPE 位為 0,修改 TIMx_ARR 值馬上有效。

 

 

 

另外,我又去查了《STM32F10xxx參考手冊》,最后得出了一個結論:auto-reload precload 對應着TIMx 控制寄存器 1(TIMx_CR1)的位7——ARPE

ARPE:自動重裝載預裝載允許位 (Auto-reload preload enable)
0: TIMx_ARR寄存器沒有緩沖;
1: TIMx_ARR寄存器被裝入緩沖器。

具體時序圖如下所示:

圖57 計數器時序圖,當ARPE=0時的更新事件(TIMx_ARR沒有預裝入)

 

 



 

 


圖58 計數器時序圖,當ARPE=1時的更新事件(預裝入了TIMx_ARR)

結論
1. auto-reload preload=Disable:自動重裝載寄存器寫入新值后,計數器立即產生計數溢出,然后開始新的計數周期
2. auto-reload preload=Enable:自動重裝載寄存器寫入新值后,計數器完成當前舊的計數后,再開始新的計數周期


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM