介紹
STM32F103ZET6 定時器資源非常豐富,根據 datasheet 描述,涵蓋如下幾種類型:
高級定時器 TIM1 / TIM8
通用定時器 TIM2 / TIM3 / TIM4 / TIM5
基本定時器 TIM6/ TIM7
本次描述的重點是基本定時器 TIM6/ TIM7
基本定時器TIM6和TIM7各包含一個16位自動裝載計數器,由各自的可編程預分頻器驅動。它們可以作為通用定時器提供時間基準,特別地可以為數模轉換器(DAC)提供時鐘。實際上,它們在芯片內部直接連接到DAC并通過觸發輸出直接驅動DAC。這2個定時器是互相獨立的,不共享任何資源。
時鐘
可以看到來自 APB1 的低頻時鐘經過頻率x2供給了 TIM2~TIM7,其中包含了 TIM6/ TIM7,所以供給此部分的時鐘為 72MHz
在 TIM6 / TIM7 中存在一個預分頻器,支持輸入的時鐘進行預分頻,計數器使用預分頻后的時鐘進行計數:
預分頻的參數配置支持 1~65536
模式
TIM6 / TIM7 支持基本的循環計數,計數方式是從小到大。并且可以支持在任何時間內進行預分頻系數的配置,配置在下一個UEV產生后生效。(UEV指的是一個更新時間,即一次計數溢出,當然,也可以支持軟件進行主動觸發)
可以支持 auto reload 和 one shot 的模式,即計數器完成一次計數之后,是自動重載之前的值,繼續計數,還是完成一次計數任務后,停止計數。通過配置 TIMx_CR1 的 OPM單脈沖模式 (One-pulse mode) 來選擇:
中斷
可以通過配置中斷,來達到計數器上溢出時刻產生對應的中斷
配置過程
1. 打開 TIM6 / TIM7 的時鐘
2. 配置中斷優先級 NVIC 并使能中斷
3. 配置分頻系數和計數器的達到溢出的上限數值
4. 啟用自動重裝載預裝載
5. 選擇auto reload模式
6. 選擇更新源(全開)
7. 開啟溢出中斷
8. 使能定時器
代碼
初始化部分
這里 72MHz 的時鐘輸入,預分頻為 7200(7200 - 1,這里是 datasheet中描述的預分頻計算方法),計數為10000次溢出,故產生的是 1s 的定時器:
#define TIM6_CNT (10000 - 1)
#define TIM6_PSC (7200 - 1)
static SK_TIM6_NVICConifg(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* PE5/PE6 */
NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void SK_TIM6_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
SK_TIM6_NVICConifg();
/// Step 1 : Open TIM6&TIM7 Clock
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
/// Step 2 : Set basic settings
// Input CLOCK = 72MHz
TIM_TimeBaseStructure.TIM_Period = TIM6_CNT;
TIM_TimeBaseStructure.TIM_Prescaler = TIM6_PSC;
TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);
TIM_ARRPreloadConfig(TIM6, ENABLE);
TIM_SelectOnePulseMode(TIM6, TIM_OPMode_Repetitive);
TIM_UpdateRequestConfig(TIM6, TIM_UpdateSource_Global);
TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM6, ENABLE);
}
中斷處理部分
void TIM6_IRQHandler(void)
{
static uint8_t cnt = 0;
if (TIM_GetITStatus(TIM6, TIM_IT_Update))
{
TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
if (!cnt)
{
SK_SetLedStatus(SK_LED_1, SK_LED_ON);
cnt++;
}
else
{
SK_SetLedStatus(SK_LED_1, SK_LED_OFF);
cnt--;
}
}
}
上一篇:STM32F103ZET6 — TIM6/TIM7
下一篇:STM32F103ZET6 時鐘(1)
推薦閱讀
史海拾趣
作為一家具有社會責任感的企業,AMICC始終關注環境保護和可持續發展。公司在生產過程中積極采用環保材料和技術,降低能耗和排放。同時,AMICC還積極參與公益事業,為社會做出貢獻。這些舉措不僅提升了公司的社會形象,也為公司的長遠發展奠定了堅實的基礎。
這五個故事只是AMICC發展歷程中的一部分,但它們足以展現出這家企業在電子行業中的拼搏和成長。AMICC以其堅定的信念、不懈的努力和持續的創新精神,在激烈的市場競爭中脫穎而出,成為了一家備受矚目的優秀企業。
隨著全球環保意識的不斷提高,Ferroperm公司也積極響應環保號召,致力于可持續發展。他們采用環保材料和生產工藝,減少生產過程中的污染和廢棄物排放。同時,Ferroperm還積極參與環保公益活動,推動環保理念的普及和傳播。這種對環保的關注和投入不僅體現了公司的社會責任感,也為公司的長遠發展奠定了堅實的基礎。
Autonics自成立以來,一直致力于傳感器和控制器的研究與開發。公司擁有一支高素質、專業化的研發團隊,不斷推出具有創新性和競爭力的產品。經過多年的努力,Autonics的產品種類逐漸豐富,性能不斷提升,贏得了市場的廣泛認可。同時,公司還注重與國內外高校、科研機構的合作,引進先進技術,提升自身的研發能力。
面對數字化浪潮的挑戰,EBK Kruger積極擁抱數字化轉型。公司引入了先進的ERP系統和智能制造技術,提高了生產效率和產品質量。同時,EBK Kruger還加強了對大數據和人工智能技術的研發和應用,為客戶提供了更加智能化和個性化的產品和服務。通過數字化轉型的推動,EBK Kruger在激烈的市場競爭中保持了領先地位。
靜芯微電子在發展過程中,持續投入研發資源,不斷推動技術創新。公司成功研發出芯片級TVS器件,并在國內首次開發成功在人體模型(HBM)下抗靜電強度高于30KV的關鍵技術和器件。這一技術突破不僅提升了產品的性能,還進一步鞏固了靜芯微電子在ESD/TVS領域的領先地位。同時,公司還積極申請和積累專利,目前已擁有多項發明專利、實用新型專利和集成電路布圖登記等知識產權成果。
靜芯微電子(ElecSuper)成立于XXXX年,由一群富有遠見和熱情的電子工程師共同創立。公司從一開始就專注于ESD(靜電放電)/TVS(瞬態電壓抑制器)系列器件的研發,致力于為客戶提供高質量的靜電保護和電壓穩定解決方案。通過不斷的技術創新和產品優化,靜芯微電子逐漸在ESD/TVS領域取得了突破,并積累了大量的客戶基礎。
求Compact c# 如何使Contextmenu的字體變大和加圖標 在compact 2005 c#下開發 1,如何能夠改變字體大小(原來字太小,想大點,找不到地方設置) 2,能不能加圖片呢(好像照目前的東西看,是不行)… 查看全部問答∨ |
|
在eboot中增加顯示logo的功能,在OemInit 函數之后有一段時間LCD不顯示,為何? 我用的PXA270,在OemInit 函數之前都能顯示, 但在OemInit 函數之后有一段時間LCD不顯示, 是不是lcd在那個地方被關掉了? 因為我發現lcd的P CLOCK沒有了, … 查看全部問答∨ |
|
采集程序在運行了之后會出現一個錯誤,the specified group is in use,用探針看,除了循環的第一次error實現the operation could not compelte with limit time外,第二次以后的循環在config處error就開始輸出這個錯誤,這是什么原因啊?而且,這 ...… 查看全部問答∨ |
本帖最后由 dontium 于 2015-1-23 13:40 編輯 我想找霍爾位置傳感器在電機控制中的位置檢測應用方面的資料,要實用些的.在網上搜了一堆,都是從霍爾傳感器的理論說起.沒有比較具體的應用.這樣就不易理解了.謝謝. … 查看全部問答∨ |
430單片機的看門狗有兩種工作模式:一是間隔定時器模式;一是看門狗模式。 間隔定時器模式比較簡單,不麻煩大家了! 看門狗定時器工作于看門狗模式時,WDTIE對看門狗的工作及中斷不起限制作用,可以不用理會。 當看門狗定時器定時時間到后,會置 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析