資源描述:
《第五講:爭分奪秒》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、稀里糊涂學(xué)STM32Ling.Ju第五講爭分奪秒常語人曰:“大禹圣者,乃惜寸陰,至于眾人,當(dāng)惜分陰?!比松?dāng)爭分奪秒。本講學(xué)習(xí)目標(biāo):1、了解定時器時鐘體系。2、配置TIMx,RTC。A:STM32的TIMx在第二講中曾提到STM32的時鐘體系結(jié)構(gòu),當(dāng)然只是簡單的介紹了RCC(復(fù)位時鐘控制器)和滴答時鐘的使用,而在這一講中我們開始學(xué)習(xí)真正的時鐘——通用定時器(TIMx)。當(dāng)然,在這里不可能詳述所有TIM的各個關(guān)節(jié),但是希望能從這講中學(xué)會簡單使用TIMx產(chǎn)生定時。STM32中將定時器分為了兩種:通用定時器(TIMx)以及基本定時器(TIM6和TIM7)和高級
2、控制定時器(TIM1和TIM8),今天我們將要學(xué)習(xí)的是TIMx,也就是STM32的通用定時器。這一講的目的是利用TIM2,建立一個秒中斷。并對比而后要學(xué)習(xí)的RTC實時時鐘。----------------------------------------------------------------------------------------------------------------------第一件最重要的是,還是利用程序開關(guān)“stm32f10x_conf.h”開放#include"stm32f10x_tim.h"、#include"misc
3、.h"。Tiim.h可謂龐大,這與復(fù)雜多變的STM32時鐘系統(tǒng)有關(guān),更與這強大的TIM有關(guān)。E-mail:Poseidonstorm@126.comor471661781@qq.com稀里糊涂學(xué)STM32Ling.Ju在TIMx的簡介中我們可以了解到:通用定時器是一個通過可編程預(yù)分頻器驅(qū)動的16位自動裝載計數(shù)器構(gòu)成的。他具有測量輸入信號的脈沖長度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較)和PWM的功能。以下是TIMx的框圖:對于這張圖的學(xué)習(xí)希望能從以下幾個結(jié)構(gòu)體開始:TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure)
4、;TIM_OC1Init(TIM2,&TIM_OCInitStructure);E-mail:Poseidonstorm@126.comor471661781@qq.com稀里糊涂學(xué)STM32Ling.Ju在開啟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIMx,ENABLE);后,我們開始由基本時鐘設(shè)置函數(shù)中的TIM_TimeBaseStructure開始解釋圖中的一些關(guān)節(jié):TIM_Prescaler:設(shè)置了用來作為TIMx時鐘頻率除數(shù)的預(yù)分頻值。它的取值必須在0x0000和0xFFFF之間。(16位)--------
5、--------------------------------------------------------------------------------------------------------------什么是TIM_Prescaler預(yù)分頻器可以將計數(shù)器的時鐘頻率按1到65536之間的任意值分頻。它是基于一個(在TIMx_PSC寄存器中的)16位寄存器控制的16位計數(shù)器。這個控制寄存器帶有緩沖器,它能夠在工作時被改變。新的預(yù)分頻器參數(shù)在下一次更新事件到來時被采用。注意:預(yù)分頻,就是分頻系數(shù),STM32中,雖然TIMx是屬于低速總線的,這
6、條總線最高只能36M的速度,但芯片內(nèi)部還有一個*2的倍頻器,用于把這個低速的36M倍頻成72M,3.0的庫中開始已經(jīng)默認(rèn)實現(xiàn)了這一步.所以我們使用的TIMx,速度依舊是72M。如果將TIM_Prescaler賦值7200-1則預(yù)分頻后的效果是0.0001S一個周期。如果之后設(shè)定了捕獲比較值,那么除了總的計數(shù)值外,還會在一次完整的累加中,比較捕獲比較值,進(jìn)行動作,非常方便。---------------------------------------------------------------------------------------------
7、-------------------------E-mail:Poseidonstorm@126.comor471661781@qq.com稀里糊涂學(xué)STM32Ling.JuTIM_CounterMode:選擇了計數(shù)器模式。(向上、向下、中央1、2、3)向上向下不必贅述,而中央模式雖本講未有使用希望能夠了解:中央1、2、3:(筆者注:STM32中的圖不是很明顯,如果沒記錯,ATMELAVR的PWM章節(jié)的圖會相對好看點,至少有看得懂的鋸齒累加的圖)注:STM32F10x常見應(yīng)用解析中第28頁開始講述定時輸出與PWM,此部分寫的較為完整,相比參考手冊更容易
8、理解。相關(guān)的累加圖,可以對比AVR單片機中PWM模式的幾張三角波、鋸齒波的圖(雖