奮斗s開(kāi)發(fā)板通用定時(shí)器p例程程講解_第1頁(yè)
奮斗s開(kāi)發(fā)板通用定時(shí)器p例程程講解_第2頁(yè)
奮斗s開(kāi)發(fā)板通用定時(shí)器p例程程講解_第3頁(yè)
奮斗s開(kāi)發(fā)板通用定時(shí)器p例程程講解_第4頁(yè)
奮斗s開(kāi)發(fā)板通用定時(shí)器p例程程講解_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)通用定時(shí)器(TIM3)PWM 例程實(shí)驗(yàn)實(shí)驗(yàn)平臺(tái):奮斗版STM32開(kāi)發(fā)板MINI、V2、V2.1、V3實(shí)驗(yàn)內(nèi)容:板子加電后,LED1(MINI的V2標(biāo)號(hào))(V2、V2.1、V3的V6標(biāo)號(hào))的亮度會(huì)明暗漸變,該實(shí)驗(yàn)學(xué)習(xí)了PWM程序的編制及流程。預(yù)先需要掌握的知識(shí)1 復(fù)用功能I/O和調(diào)試配置(AFIO)為了優(yōu)化外設(shè)數(shù)目,可以把一些復(fù)用功能重新到其他引腳上。設(shè)置復(fù)用重和調(diào)試I/O到它們配置寄存器(AFIO_MAPR)(參見(jiàn)0節(jié))實(shí)現(xiàn)引腳的重新的原始分配上。這時(shí),復(fù)用功能不再1.1 復(fù)用重地址偏移:0x04 復(fù)位值:0x0000和調(diào)試I

2、/O配置寄存器(AFIO_MAPR)00001淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)2淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)3淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)2.1 嵌套向量中斷特性器(NVIC) 43 16個(gè)可中斷通道(不包含16 個(gè)Cortex-M3 的中斷線); 個(gè)可編程的優(yōu)先等級(jí); 低延遲的異常和中斷處理;電源管理;系統(tǒng)寄存器的實(shí)現(xiàn);嵌套向量中斷器(NVIC)和處理器核的接口緊密相連,可以實(shí)現(xiàn)低延遲的中斷處理和有效處理地處理晚到的中斷。嵌套向

3、量中斷器管理著包括核異常等中斷。關(guān)于的異常和NVIC編程的說(shuō)明請(qǐng)參考ARMCortex-M3TM技術(shù)參考手冊(cè)的第5章的異常和第8章的嵌套向量中斷2.1.1 系統(tǒng)嘀嗒(SysTick)校準(zhǔn)值寄存器器。系統(tǒng)嘀嗒校準(zhǔn)值固定到9000,2.1.2 中斷和異常向量嘀嗒時(shí)鐘設(shè)定為9兆赫,產(chǎn)生1ms。表1向量表4淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)5淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)3通用定時(shí)器(TIMx)3.1 概述通用定時(shí)器是一個(gè)通過(guò)可編程預(yù)分頻器驅(qū)動(dòng)的16 位自動(dòng)裝載計(jì)數(shù)器。它適用于多種場(chǎng)合,包括測(cè)輸入

4、信號(hào)的脈沖長(zhǎng)(輸入)或者產(chǎn)生輸出波形(輸出比較和PWM)。使用定時(shí)器預(yù)分頻器和RCC 時(shí)鐘器預(yù)分頻器,脈沖長(zhǎng)和波形周期可以在幾個(gè)微秒到幾個(gè)毫秒間調(diào)整。定時(shí)器是完全獨(dú)的,而且沒(méi)有互相共享任何起同步操作。3.2 主要特性通用TIMx 定時(shí)器特性包括: 16 位向上,向下,向上/向下自動(dòng)裝載計(jì)數(shù)器。它們可以一 16 位可編程預(yù)分頻器,計(jì)數(shù)器時(shí)鐘頻的分頻系數(shù)為165535 之間的任意數(shù)值 4個(gè)獨(dú)通道: 輸入捕獲 輸出比較 PWM 生成(邊緣或中間對(duì)齊模式)沖模式輸出使用外部信號(hào)定時(shí)器和定時(shí)器互連的同步電如下發(fā)生時(shí)產(chǎn)生中斷/DMA:新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā))

5、觸發(fā)(計(jì)數(shù)器啟動(dòng),停止,初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù))輸入捕獲輸出比較3.3 概述接口通過(guò)三個(gè)引腳與其他設(shè)備連接在一起(見(jiàn)圖1)。任何USART雙向通信至少需要兩個(gè)腳:接收數(shù)據(jù)輸入(RX)和數(shù)據(jù)輸出(TX)。RX:接收數(shù)據(jù)輸。通過(guò)過(guò)采樣技術(shù)來(lái)區(qū)別數(shù)據(jù)和噪音,從而恢復(fù)數(shù)據(jù)。TX:數(shù)據(jù)輸出。當(dāng)器被時(shí),輸出引腳恢復(fù)到它的I/O 端口配置。當(dāng)器被激活,并且沒(méi)東西送和接收數(shù)據(jù)。時(shí),TX 引腳處于高電平。在單線和智能卡模式,此I/O 口被用來(lái)發(fā)總線在或接收前應(yīng)處于空閑狀態(tài)一個(gè)起始位一個(gè)數(shù)據(jù)字(8 或9 位),最低有效位在前6淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例

6、程實(shí)驗(yàn)0.5,1.5,2 個(gè)的停止位,由此表明數(shù)據(jù)幀的結(jié)束使用分?jǐn)?shù)發(fā)生器 12 位整數(shù)和4 位小數(shù)的表示方法。一個(gè)狀態(tài)寄存器(USART_SR) 數(shù)據(jù)寄存器(USART_DR)一個(gè)寄存器(USART_BRR),12 位的整數(shù)和4 位小數(shù)一個(gè)智能卡模式下的保護(hù)時(shí)間寄存器(USART_GTPR)關(guān)于以上寄存器中每個(gè)位的具體定義,請(qǐng)參考寄存器描述。在同步模式中需要下引腳:SCLK:器時(shí)鐘輸出。此引腳輸出用于同步傳輸?shù)?時(shí)鐘, (在Start 位和Stop位上沒(méi)有時(shí)鐘脈沖,軟件可選地,可以在最后一個(gè)數(shù)據(jù)位送出一個(gè)時(shí)鐘脈沖)。數(shù)據(jù)可以在RX 上同步被接收。這可以用來(lái)帶有移位寄存器的外部設(shè)備(如LCD 驅(qū)

7、動(dòng)器)。時(shí)鐘相位和極性都是軟件可編程的。在智能卡模式,SCLK 可以為智能卡提供時(shí)鐘。在IrDA 模式需要下引腳:IrDA_RDI: IrDA 模式下的數(shù)據(jù)輸入。IrDA_TDO: IrDA 模式下的數(shù)據(jù)輸出。下引腳在硬件控模式中需要:nCTS: 清除,是高電平,在當(dāng)前數(shù)據(jù)傳輸結(jié)束時(shí)阻斷下一次的數(shù)據(jù)。nRTS:請(qǐng)求,是低電平,表明USART準(zhǔn)備好接收數(shù)據(jù)3.3.1 框圖圖1通用定時(shí)器框圖7淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)3.4 功能描述3.4.1單元可編程通用定時(shí)器的主要部分是一個(gè)16 位計(jì)數(shù)器和與其相關(guān)的自動(dòng)裝載寄存器。這個(gè)計(jì)數(shù)器可以向上計(jì)

8、數(shù)、向下計(jì)數(shù)或者向上向下雙向計(jì)數(shù)。此計(jì)數(shù)器時(shí)鐘由預(yù)分頻器分頻得到。計(jì)數(shù)器、自動(dòng)裝載寄存器和預(yù)分頻器寄存器可以由軟件讀寫,即使計(jì)數(shù)器還在運(yùn)讀寫仍然有效。單元包含:計(jì)數(shù)器寄存器( 預(yù)分頻器寄存器自動(dòng)裝載寄存器T) (TIMx_PSC)(TIMx_ARR)自動(dòng)裝載寄存器是預(yù)先裝載的。根據(jù)在TIMX_CR1 寄存器中的自動(dòng)裝載預(yù)裝載使能位ARPE)的設(shè)置,預(yù)裝載寄存器的內(nèi)容被地或在每次的新UEV 時(shí)傳送到寄存器。當(dāng)計(jì)數(shù)器達(dá)到溢出條件(向下計(jì)數(shù)時(shí)的下溢條件)并當(dāng)TIMX_CR1 寄存器中的UDIS 位等于0 時(shí),產(chǎn)生新。新也可以由軟件產(chǎn)生。隨后會(huì)詳細(xì)描述每一種配置下新T 驅(qū)動(dòng),僅當(dāng)設(shè)置計(jì)數(shù)器TIMX_C

9、R1的產(chǎn)生。計(jì)數(shù)器由預(yù)分頻器的時(shí)鐘輸出8淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)寄存器中的計(jì)數(shù)器使能位(CEN)時(shí),參見(jiàn)器的從模式描述)。T 才有效。(有關(guān)多的計(jì)數(shù)器使能的細(xì)節(jié),請(qǐng)注:真正的計(jì)數(shù)器使能信號(hào)CNT_EN 是在CEN 后的一個(gè)時(shí)鐘周期后被設(shè)置。預(yù)分頻器描述預(yù)分頻器可以將計(jì)數(shù)器的時(shí)鐘頻按1 到65536 之間的任意值分頻。它是基于一個(gè)(在TIMx_PSC 寄存器中的)16 位寄存器的16 位計(jì)數(shù)器。因?yàn)檫@個(gè)寄存器帶有緩沖器,它能夠在工作時(shí)被改變。新的預(yù)分頻器的參數(shù)在下一次新到來(lái)時(shí)被采用。3.4.2 計(jì)數(shù)器模式向上計(jì)數(shù)模式在向上計(jì)數(shù)模式中,

10、計(jì)數(shù)器從0 計(jì)數(shù)到自動(dòng)加載值(TIMx_ARR 計(jì)數(shù)器的內(nèi)容),然后重新從0 開(kāi)始計(jì)數(shù)并且產(chǎn)生一個(gè)計(jì)數(shù)器溢出。每次計(jì)數(shù)器溢出時(shí)可以產(chǎn)生新,在TIMx_EGR 寄存器中設(shè)置UG 位(通過(guò)軟件方式或者使用從模式一個(gè)新。通過(guò)軟件設(shè)置TIMx_CR1 寄存器中的UDIS 位,將器)也同樣可以產(chǎn)生新;這樣可以避免在向預(yù)裝載寄存器中寫入新值時(shí)新寄存器。在UDIS 位被0 之前,將沒(méi)有產(chǎn)生。即使這樣,在應(yīng)該產(chǎn)生新時(shí),計(jì)數(shù)器仍會(huì)被清0,同時(shí)預(yù)分頻器的計(jì)新數(shù)也被請(qǐng)0(但預(yù)分頻器的數(shù)值變)。此外,如果TIMx_CR1 存器中的URS 位(新請(qǐng)求選擇)被設(shè)置,設(shè)置UG 位將產(chǎn)生一個(gè)新UEV,但硬件設(shè)置UIF 標(biāo)志(

11、即產(chǎn)生中斷或者DMA 請(qǐng)求)。這是為避免在捕獲模式下清除計(jì)數(shù)器時(shí),同時(shí)產(chǎn)生新和捕獲中斷。當(dāng)發(fā)生一個(gè)新,所有的寄存器都被新,硬件同時(shí)(依據(jù)URS 位)設(shè)置新標(biāo)志位(TIMx_SR 寄存器中的UIF 位)。 預(yù)分頻器的緩沖區(qū)被置入預(yù)裝載寄存器的值(TIMx_PSC 寄存器的內(nèi)容)。 自動(dòng)裝載寄存器被重新置入預(yù)裝載寄存器的值(TIMx_ARR)。向下計(jì)數(shù)模式在向下模式中,計(jì)數(shù)器從自動(dòng)裝入的值(TIMx_ARR 計(jì)數(shù)器的值)開(kāi)始向下計(jì)數(shù)到0,然后從自動(dòng)裝入的值重新開(kāi)始并且產(chǎn)生一個(gè)計(jì)數(shù)器向下溢出。每次計(jì)數(shù)器溢出時(shí)可以產(chǎn)生新,在TIMx_EGR 寄存器中設(shè)置UG 位(通過(guò)軟件方式或者使用從模式器)也同樣可

12、以產(chǎn)生一個(gè)新。UEV可以通過(guò)軟件設(shè)置TIMx_CR1 寄存器中的UDIS 位被。這樣可以避免在向預(yù)裝載寄存器中寫入新值時(shí)新寄存器。這樣UDIS 位被寫成0 之前會(huì)產(chǎn)生新。然而,計(jì)數(shù)器仍會(huì)從當(dāng)前自動(dòng)加載值重新開(kāi)始計(jì)數(shù),并且預(yù)分頻器的計(jì)數(shù)器重新從0 開(kāi)始(但預(yù)分頻器的速能被修改)。此外,如果設(shè)置TIMx_CR1 寄存器中的URS 位(新請(qǐng)求選擇) ,設(shè)置UG 位將產(chǎn)生一個(gè)新UEV 但設(shè)置UIF標(biāo)志(因此產(chǎn)生中斷和DMA 請(qǐng)求),這是為避免在發(fā)生捕獲并清除計(jì)數(shù)器時(shí),同時(shí)產(chǎn)生新和捕獲中斷。當(dāng)發(fā)生新時(shí),所有的寄存器都被新,并且(根據(jù)URS 位的設(shè)置)新標(biāo)志位(TIMx_SR 寄存器中的UIF 位)也被設(shè)

13、置。 預(yù)分頻器的緩沖區(qū)被置入預(yù)裝載寄存器的值(TIMx_PSC 寄存器的內(nèi)容)。 當(dāng)前的自動(dòng)加載寄存器被新為預(yù)裝載值(TIMx_ARR 寄存器中的內(nèi)容)。注:自動(dòng)裝載在計(jì)數(shù)器重載入之前被新,因此下一個(gè)周期將是預(yù)期的值。對(duì)齊模式(向上/向下計(jì)數(shù))在對(duì)齊模式中,計(jì)數(shù)器從0 開(kāi)始計(jì)數(shù)到自動(dòng)加載的值(TIMx_ARR 寄存器的內(nèi)9淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)容)-1,產(chǎn)生一個(gè)計(jì)數(shù)器溢出,然后向下計(jì)數(shù)到1 并且產(chǎn)生一個(gè)計(jì)數(shù)器下溢;然后再?gòu)? 開(kāi)始重新計(jì)數(shù)。在這個(gè)模式下,能寫入TIMx_CR1 中的DIR 方向位。它由硬件新并指示當(dāng)前的計(jì)數(shù)方向。新

14、可以產(chǎn)生在每一次計(jì)數(shù)溢出和每一次計(jì)數(shù)下溢;也可以通過(guò)(軟件或者使用從模式器)設(shè)置TIMx_EGR 寄存器中的UG 位來(lái)產(chǎn)生新,此時(shí),計(jì)數(shù)器重新從0 開(kāi)始計(jì)數(shù),預(yù)分頻器也重新從0 開(kāi)始計(jì)數(shù)。UEV可以通過(guò)軟件設(shè)置TIMx_CR1 寄存器中的UDIS 位被。這樣可以避免在向預(yù)裝載寄存器中寫入新值時(shí)新寄存器。這樣UDIS 位被寫成0 之前會(huì)產(chǎn)生新。然而,計(jì)數(shù)器仍會(huì)根據(jù)當(dāng)前自動(dòng)重加載的值,繼續(xù)向上或向下計(jì)數(shù)。此外,如果設(shè)置TIMx_CR1 寄存器中的URS 位(新請(qǐng)求選擇) ,設(shè)置UG 位將產(chǎn)生一個(gè)新UEV 但設(shè)置UIF 標(biāo)志(因此產(chǎn)生中斷和DMA 請(qǐng)求),這是為避免在發(fā)生捕獲并清除計(jì)數(shù)器時(shí),同時(shí)產(chǎn)生

15、新和捕獲中斷。當(dāng)發(fā)生新時(shí),所有的寄存器都被新,并且(根據(jù)URS 位的設(shè)置)新標(biāo)志位(TIMx_SR 寄存器中的UIF 位)也被設(shè)置。 預(yù)分頻器的緩沖區(qū)被置入預(yù)裝載寄存器的值(TIMx_PSC 寄存器的內(nèi)容)。 當(dāng)前的自動(dòng)加載寄存器被新為預(yù)裝載值(TIMx_ARR 寄存器中的內(nèi)容)。注:如果因?yàn)橛?jì)數(shù)器溢出而產(chǎn)生新,自動(dòng)重裝載將在計(jì)數(shù)器重載入之前被新,因此下一個(gè)周期將是預(yù)期的值(計(jì)數(shù)器被裝載為新的值)。3.4.3 時(shí)鐘選擇計(jì)數(shù)器時(shí)鐘可由下時(shí)鐘源提供: 內(nèi)部時(shí)鐘(CK_INT) 外部時(shí)鐘模式1:外部輸入腳(TIx) 外部時(shí)鐘模式2:外部觸發(fā)輸入(ETR) 內(nèi)部觸發(fā)輸入(ITRx):使用一個(gè)定時(shí)器作為

16、另一個(gè)定時(shí)器的預(yù)分頻器,如你可以配置一個(gè)定時(shí)器Timer1 而作為另一個(gè)定時(shí)器Timer2 的預(yù)分頻器。內(nèi)部時(shí)鐘源(CK_INT)如果從模式器被(SMS=000),則CEN、DIR(TIMx_CR1 寄存器中)和UG位(TIMx_EGR 寄存器中)是事實(shí)上的位同時(shí)只能被軟件修改(UG 位仍被自動(dòng)清除)。一旦CEN 位被寫成1,預(yù)分頻器的時(shí)鐘就由內(nèi)部時(shí)鐘CK_INT 提供。外部時(shí)鐘源模式1當(dāng)TIMx_SMCR 寄存器中的SMS=111 時(shí),此模式被選中。計(jì)數(shù)器可以在選定的輸入上的每個(gè)上升沿或下沿計(jì)數(shù)。如,要配置向上計(jì)數(shù)器在T12 輸入端的上升沿計(jì)數(shù),使用下步驟:1. 配置TIMx_CCMR1寄存

17、器CC2S=01,配置通道2檢測(cè)TI2輸入的上升沿10淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)2. 配置TIMx_CCMR1寄存器的IC2F3:0,選擇輸入濾波器帶寬(如果不需要濾波器,保持IC2F=0000)注: 捕獲預(yù)分頻器不用作觸發(fā),所以不需要對(duì)它進(jìn)行配置.配置TIMx_CCER寄存器的CC2P=0,選定上升沿極性配置TIMx_SMCR寄存器的SMS=111,選擇定時(shí)器外部時(shí)鐘模式1 配置TIMx_SMCR寄存器中的TS=110,選定TI2作為觸發(fā)輸入源 設(shè)置TIMx_CR1寄存器的CEN=1,啟動(dòng)計(jì)數(shù)器當(dāng)上升沿出現(xiàn)在TI2,計(jì)

18、數(shù)器計(jì)數(shù)一次,且TIF 標(biāo)志被設(shè)置。在TI2 的上升沿和計(jì)數(shù)器實(shí)際時(shí)鐘之間的延時(shí)取決于在TI2 輸入端的重新同步電。外部時(shí)鐘源模式2選定此模式的方法為:TIMx_SMCR 寄存器中的ECE=1計(jì)數(shù)器能夠在外部觸發(fā)ETR 的每一個(gè)上升沿或下沿計(jì)數(shù)。如,要配置在ETR 下每2 個(gè)上升沿計(jì)數(shù)一次的向上計(jì)數(shù)器,使用下步驟:.5.本例中不需要濾波器,寫TIMx_SMCR寄存器中的ETF3:0=0000 設(shè)置預(yù)分頻器,寫TIMx_SMCR寄存器中的ETPS1:0=01設(shè)置在ETR下的上升沿檢測(cè),寫TIMx_SMCR寄存器中的ETP=0 開(kāi)啟外部時(shí)鐘模式2,寫TIMx_SMCR寄存器中的ECE

19、=1啟動(dòng)計(jì)數(shù)器,寫TIMx_CR1寄存器中的CEN=1計(jì)數(shù)器在每2 個(gè)ETR 上升沿計(jì)數(shù)一次。在ETR 的上升沿和計(jì)數(shù)器實(shí)際時(shí)鐘之間的延時(shí)取決于在ETRP 信號(hào)端的重新同步電。3.4.4 捕獲/比較通道每一個(gè)捕獲/比較通道是著一個(gè)捕獲/比較寄存器(包含寄存器),包括捕獲的輸入部分(包含數(shù)字濾波、多復(fù)用和預(yù)分頻器),和輸出部分(包含比較器和輸出下圖是一個(gè)捕獲/比較通道概覽。)。輸入部分對(duì)相應(yīng)的TIx 輸入信號(hào)采樣,并產(chǎn)生一個(gè)濾波后的信號(hào)TIxF。然后,一個(gè)帶極性選擇的邊緣監(jiān)測(cè)器產(chǎn)生一個(gè)信號(hào)(TIxFPx),它可以作為從模式。該信號(hào)在捕獲寄存器(ICxPS)之前已被整形。器的輸入觸發(fā)或者作為捕獲1

20、1淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)輸出部分產(chǎn)生一個(gè)中間波形OCxRef(高有效)作為基準(zhǔn),鏈的末端信號(hào)決定最終的輸出極性。3.4.5 輸入捕獲模式在輸入捕獲模式下,當(dāng)檢測(cè)到ICx 信號(hào)上相應(yīng)的邊沿后,捕獲/比較寄存器(TIMx_CCRx)被用來(lái)鎖存計(jì)數(shù)器的值。當(dāng)一個(gè)捕獲發(fā)生時(shí),相應(yīng)的CCXIF 標(biāo)志(TIMx_SR 寄存器)被置1,如果開(kāi)放中斷或者DMA 操作,則將產(chǎn)生中斷或者DMA 操作。如果一個(gè)捕獲發(fā)生時(shí)CCxIF 標(biāo)志已經(jīng)為高,那么重復(fù)捕獲標(biāo)志CCxOF(TIMx_SR 寄存器)被置1。寫CCxIF=0可清除CCxIF,或在TIMx_

21、CCRx 寄存器中的捕獲數(shù)據(jù)也可清除CCxIF。寫CCxOF=0 可清除CCxOF。以下子說(shuō)明如何在TI1 輸入的上升沿時(shí)捕獲計(jì)數(shù)器的值到TIMx_CCR1 寄存器中,步驟如下: 選擇有效輸入端: TIMx_CCR1 必須連接到TI1 輸入, 所以寫入TIMx_CCR1 寄存器中的CC1S=01,一旦CC1S 為00 時(shí),通道被配置為輸入,并且TM1_CCR1 寄存器變?yōu)橹蛔x。 根據(jù)輸入信號(hào)的特點(diǎn),配置輸入濾波器為所需的帶寬(輸入為TIx 時(shí),TIMx_CCMRx 寄存器中的ICxF 位)。假設(shè)輸入信號(hào)在最多5 個(gè)時(shí)鐘周期的時(shí)間內(nèi)抖動(dòng),我們須配置濾波器的帶寬長(zhǎng)于5 個(gè)時(shí)鐘周期。因此我們可以(以

22、fDTS 頻)連續(xù)采樣8 次,以確認(rèn)在TI1 上一次真實(shí)的邊沿變換,即在TIMx_CCMR1 寄存器中寫入IC1F=0011。 選擇TI1 通道的有效轉(zhuǎn)換邊沿,在TIMx_CCER 寄存器中寫入CC1P=0(即上升沿)。 配置輸入預(yù)分頻器。在本中,我們希望捕獲發(fā)生在每一個(gè)有效的電平轉(zhuǎn)換時(shí)刻,因此預(yù)分頻器被(寫TIMx_CCMR1 寄存器的IC1PS=00)。 設(shè)置TIMx_CCER 寄存器的CC1E=1,捕獲計(jì)數(shù)器的值到捕獲寄存器中。 如果需要,通過(guò)設(shè)置TIMx_DIER 寄存器中的CC1IE 位TIMx_DIER 寄存器中的CC1DE 位DMA 請(qǐng)求。 發(fā)生當(dāng)一個(gè)輸入捕獲時(shí): 當(dāng)產(chǎn)生有效的電

23、平轉(zhuǎn)換時(shí),計(jì)數(shù)器的值被傳送到TIMx_CCR1 寄存器。 CC1IF 標(biāo)志被設(shè)置(中斷標(biāo)志)。當(dāng)發(fā)生至少2 個(gè)連續(xù)的捕獲時(shí),而CC1IF未曾被清除,CC1OF 也被置1。 如設(shè)置CC1IE 位,則會(huì)產(chǎn)生一個(gè)中斷。 如設(shè)置CC1DE 位,則還會(huì)產(chǎn)生一個(gè)DMA 請(qǐng)求。相關(guān)中斷請(qǐng)求,通過(guò)設(shè)置為處捕獲溢出,建議在讀出捕獲溢出標(biāo)志之前數(shù)據(jù),這是為避免丟失在讀出捕獲溢出標(biāo)志之后和數(shù)據(jù)之前可能產(chǎn)生的捕獲溢出信息。注: 設(shè)置TIMx_EGR 寄存器中相應(yīng)的CCxG 位,可以通過(guò)軟件產(chǎn)生輸入捕獲中斷和/ 或DMA 請(qǐng)求。12淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)3

24、.4.6 PWM輸入模式該模式是輸入捕獲模式的一個(gè)特,除下區(qū)別外,工作過(guò)程與輸入捕獲模式相同: 兩個(gè)ICx 信號(hào)被同一個(gè)TIx 輸入。 這2 個(gè)ICx 信號(hào)為邊沿有效,但是極性相反。 其中一個(gè)TIxFP 信號(hào)被作為觸發(fā)輸入信號(hào),并且從模式器被配置成復(fù)位模式。如,你能夠測(cè)輸入到TI1 上的PWM 信號(hào)的長(zhǎng)(TIMx_CCR1 寄存器)和占空比(TIMx_CCR2 寄存器),具體步驟如下(取決于CK_INT 的頻和預(yù)分頻器的值)選擇TIMx_CCR1 的有效輸入端:置TIMx_CCMR1 寄存器的CC1S=01(選擇TI1);選擇TI1FP1 的有效極性(用來(lái)捕獲數(shù)據(jù)到TIMx_CCR1 中和清除

25、計(jì)數(shù)器):置CC1P=0;選擇TIMx_CCR2 的有效輸入端:置TIMx_CCMR1 寄存器的CC2S=10(選擇TI1); 選擇TI1FP2 的有效極性(用來(lái)捕獲數(shù)據(jù)到TIMx_CCR2):置CC2P=1(下沿有效); 選擇有效的觸發(fā)輸入信號(hào):置TIMx_SMCR 寄存器中的TS=101(選擇TI1FP1);配置從模式 器為復(fù)位模式:置TIMx_SMCR 中的SMS=100;使能捕獲:置TIMx_CCER 寄存器中CC1E=1 且CC2E=1。3.4.7 強(qiáng)置輸出模式在輸出模式(TIMx_CCMRx 寄存器中CCxS=00)下,輸出比較信號(hào)(OCxREF 和相應(yīng)的OCx/OCxN)能夠直接

26、由軟件強(qiáng)置為有效或無(wú)效狀態(tài),而依賴于輸出比較寄存器和計(jì)數(shù)器間的比較結(jié)果。置TIMx_CCMRx 寄存器中相應(yīng)的OCxM=101,即可強(qiáng)置輸出比較信號(hào)(OCxREF/OCx)為有效狀態(tài)。這樣OCxREF 被強(qiáng)置為高電平(OCxREF 始終為高電平有效),同時(shí)OCx 得到CCxP 極性位相反的值。如:CCxP=0(OCx 高電平有效),則OCx 被強(qiáng)置為高電平。置TIMx_CCMRx 寄存器中的OCxM=100,可強(qiáng)置OCxREF 信號(hào)為低。該模式下,在TIMx_CCRx寄存器和計(jì)數(shù)器之間的比較仍然在進(jìn),相應(yīng)的標(biāo)志也會(huì)被修改。因此仍然會(huì)產(chǎn)生相應(yīng)的中斷和DMA 請(qǐng)求。這將會(huì)在下面的輸出比較模式一節(jié)中

27、介紹。3.4.8 輸出比較模式此項(xiàng)功能是用來(lái)一個(gè)輸出波形或者指示何時(shí)一段給定的的時(shí)間已經(jīng)到時(shí)。當(dāng)計(jì)數(shù)器與捕獲/比較寄存器的內(nèi)容相同時(shí),輸出比較功能做如下操作: 將輸出比較模式(TIMx_CCMRx 寄存器中的OCxM 位) 和輸出極性(TIMx_CCER 寄存器中的CCxP 位)定義的值輸出到對(duì)應(yīng)的管腳上。在比較匹配時(shí),輸出管腳可以保持它的電平(OCxM=011)、被設(shè)置成有效電平(OCxM=001) 、被設(shè)置成無(wú)有效電平(OCxM=010) 或進(jìn)翻轉(zhuǎn)(OCxM=011)。設(shè)置中斷狀態(tài)寄存器中的標(biāo)志位(TIMx_SR 寄存器中的CCxIF 位)。如果設(shè)置相應(yīng)的中斷(TIMx_DIER 寄存器中

28、的CCXIE 位),則產(chǎn)生一個(gè)中斷。設(shè)置相應(yīng)的使能位(TIMx_DIER 寄存器中的CCxDE 位,TIMx_CR2 寄存器中的CCDS 位選擇DMA 請(qǐng)求功能),則產(chǎn)生一個(gè)DMA 請(qǐng)求。TIMx_CCMRx 中的OCxPE 位用于選擇TIMx_CCRx 寄存器是否需要使用預(yù)裝載寄存器。在輸出比較模式下,新UEV 對(duì)OCxREF 和OCx 輸出沒(méi)有影響。同步的精到達(dá)計(jì)數(shù)器的一個(gè)計(jì)數(shù)周期。輸出比較模式(在輸出比較模式的配置步驟:1. 選擇計(jì)數(shù)器時(shí)鐘(內(nèi)部,外部,預(yù)分頻器)沖模式下)也能用來(lái)輸出一個(gè)沖。13淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)2.3

29、.4.將相應(yīng)的數(shù)據(jù)寫入TIMx_ARR和TIMx_CCRx寄存器中如果要產(chǎn)生一個(gè)中斷請(qǐng)求和/或一個(gè)DMA請(qǐng)求,設(shè)置CCxIE位和/或CCxDE位。選擇輸出模式,例如:必須設(shè)置OCxM=011、OCxPE=0、CCxP=0和CCxE=1,當(dāng)CNT與CCRx匹配時(shí)翻轉(zhuǎn)OCx的輸出管腳,CCRx預(yù)裝載未用,開(kāi)啟OCx輸出且高電平有效。5. 設(shè)置TIMx_CR1寄存器的CEN位啟動(dòng)計(jì)數(shù)器TIMx_CCRx寄存器能夠在任何時(shí)候通過(guò)軟件進(jìn)新以輸出波形,條件是未使用預(yù)裝載寄存器(OCxPE=0,否則TIMx_CCRx影子寄存器只能在下一次新發(fā)生時(shí)被新)3.4.9 PWM 模式脈沖寬調(diào)制模式可以產(chǎn)生一個(gè)由TI

30、Mx_ARR 寄存器確定頻、由TIMx_CCRx寄存器確定占空比的信號(hào)。在TIMx_CCMRx 寄存器中的OCxM 位寫入“110(PWM 模式1)或“111(PWM 模式2),能夠獨(dú)地設(shè)置每個(gè)通道工作在PWM 模式,每個(gè)OCx 輸出一PWM。必須通過(guò)設(shè)置TIMx_CCMRx 寄存器OCxPE 位使能相應(yīng)的預(yù)裝載寄存器,最后還要設(shè)置TIMx_CR1 寄存器的ARPE 位使能自動(dòng)重裝載的預(yù)裝載寄存器(在向上計(jì)數(shù)或中心對(duì)稱模式中)。因?yàn)閮H當(dāng)發(fā)生一個(gè)新的時(shí)候,預(yù)裝載寄存器才能被傳送到寄存器,因此在計(jì)數(shù)器開(kāi)始計(jì)數(shù)之前,必須通過(guò)設(shè)置TIMx_EGR 寄存器中的UG 位來(lái)初始化所有的寄存器。OCx 的極性

31、可以通過(guò)軟件在TIMx_CCER 寄存器中的CCxP 位設(shè)置,它可以設(shè)置為高電平有效活和低電平有效。OCx 輸出通過(guò)TIMx_CCER 寄存器中的CCxE 位使能。詳見(jiàn)TIMx_CCERx 寄存器的描述。在PWM 模式(模式1 或模式2)下,T 和TIM1_CCRx 始終在進(jìn)比較,(依據(jù)計(jì)數(shù)器的計(jì)數(shù)方向)以確定是否符合TIM1_CCRxT 或者TTIM1_CCRx。然而,為與OCREF_CLR 的功能(在下一個(gè)PWM周期之前,OCREF 能夠通過(guò)ETR 信號(hào)被一個(gè)外部清除)一致,OCREF 信號(hào)只能在下述條件下產(chǎn)生: 當(dāng)比較的結(jié)果改變,或 當(dāng)輸出比較模式(TIMx_CCMRx 寄存器中的OCx

32、M 位)從“凍結(jié)(無(wú)比較,OCxM=000)換到某個(gè)PWM 模式(OCxM=110或111)。這樣在運(yùn)中可以通過(guò)軟件強(qiáng)置PWM 輸出。根據(jù)TIMx_CR1 寄存器中CMS 位的狀態(tài),定時(shí)器能夠產(chǎn)生邊沿對(duì)信號(hào)。PWM 邊沿對(duì)齊模式對(duì)PWM或向上計(jì)數(shù)配置當(dāng)TIMx_CR1 寄存器中的DIR位為低的時(shí)候執(zhí)向上計(jì)數(shù)。下面是一個(gè)PWM模式1 的子。TTIMx_CCRx 時(shí)OCxREF 為低,否則為高。如果TIMx_CCRx中的比較值大于TIMx_ARR 中的自動(dòng)重裝載值,則OCxREF 保持為“1。該模式下能產(chǎn)生0的PWM 波形。PWM對(duì)齊模式當(dāng)TIMx_CR1 寄存器中的CMS位為00 時(shí)為對(duì)齊模式(

33、所有其他的配置對(duì)OCxREF/OCx信號(hào)都有相同的作用)。根據(jù)同的CMS位的設(shè)置,比較標(biāo)志可能在計(jì)數(shù)器向上計(jì)數(shù)時(shí)被置1、在計(jì)數(shù)器向下計(jì)數(shù)時(shí)被置1、或在計(jì)數(shù)器向上和向下計(jì)數(shù)時(shí)被置1。TIMx_CR1 寄存器中的計(jì)數(shù)方向位(DIR)由硬件新,要用軟件修改它。下圖 給出一些對(duì)PWM波形的子置TIMx_ARR=8PWM 模式1TIMx_CR1 寄存器中的CMS=01,在對(duì)齊模式1時(shí),當(dāng)計(jì)數(shù)器向下計(jì)數(shù)時(shí)標(biāo)志被設(shè)15淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)使用 進(jìn)入對(duì)齊模式的提示對(duì)齊模式時(shí),當(dāng)前的上-下配置被使用;這就意味著計(jì)數(shù)器向上還是向下計(jì)數(shù)取決于TIMx_

34、CR1 寄存器中DIR 位的當(dāng)前值。此外,DIR 和CMS 位能同時(shí)被軟件修改。 推薦當(dāng)運(yùn)在特別地: 如果寫入計(jì)數(shù)器的值大于自動(dòng)重加載的值(對(duì)齊模式時(shí)改寫計(jì)數(shù)器,因?yàn)闀?huì)產(chǎn)生可預(yù)知的結(jié)果。TTIMx_ARR),則方向會(huì)被新。如,如果計(jì)數(shù)器正在向上計(jì)數(shù),它就會(huì)繼續(xù)向上計(jì)數(shù)。 如果將0 或者TIMx_ARR 的值寫入計(jì)數(shù)器,方向被新,但產(chǎn)生新UEV。使用對(duì)齊模式最保險(xiǎn)的方法,就是在啟動(dòng)計(jì)數(shù)器之前產(chǎn)生一個(gè)軟件新(設(shè)置TIMx_EGR 位中的UG 位),要在計(jì)數(shù)進(jìn)過(guò)程中修改計(jì)數(shù)器的值。3.4.10沖模式?jīng)_模式(OPM)時(shí)前述眾多模式的一個(gè)特。這種模式計(jì)數(shù)器響應(yīng)一個(gè)激勵(lì),并在一個(gè)可編程延時(shí)之后產(chǎn)生一個(gè)可對(duì)

35、脈寬可編程的脈沖。可以通過(guò)從模式器啟動(dòng)計(jì)數(shù)器,在輸出比較模式或者PWM 模式下產(chǎn)生波形。設(shè)置TIMx_CR1 寄存器中的OPM 位將選擇沖模式,這樣可以讓計(jì)數(shù)器自動(dòng)地在產(chǎn)生下一個(gè)新UEV 時(shí)停止。僅當(dāng)比較值與計(jì)數(shù)器的初始值同時(shí),才能產(chǎn)生一個(gè)脈沖。啟動(dòng)之前(當(dāng)定時(shí)器正在等待觸發(fā)),必須如下配置:16淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)向上計(jì)數(shù)方式:CNTCCRxARR (特別地, 0CCRx。假定TI2FP2 作為觸發(fā)1:置TIMx_CCMR1 寄存器中的IC2S=01,把TI2FP2 映像到TI2。置TIMx_CCER 寄存器中的CC2P=0,

36、使TI2FP2 能夠檢測(cè)上升沿。置TIMx_SMCR 寄存器中的TS=110,配置TI2FP2 作為從模式器的觸發(fā)(TRGI)。置TIMx_SMCR 寄存器中的SMS=110(觸發(fā)模式),TI2FP2 被用來(lái)啟動(dòng)計(jì)數(shù)器。 OPM 波形由寫入比較寄存器決定(要考慮時(shí)鐘頻和計(jì)數(shù)器預(yù)分頻器)tDELAY 由寫入TIMx_CCR1 寄存器中的值定義。tPULSE 由自動(dòng)裝載值和比較值之間的差值定義(TIMx_ARR - TIMx_CCR1)。假定當(dāng)發(fā)生比較匹配時(shí)要產(chǎn)生從0到1的波形,當(dāng)計(jì)數(shù)器到達(dá)預(yù)裝載值是要產(chǎn)生一個(gè)從1到0的波形;首先要置TIMx_CCMR1寄存器中的OC1M=111進(jìn)入PWM模式2;

37、有選擇的置TIMx_CCMR1中的OC1PE=1和TIMx_CR1寄存器中的ARPE,使能預(yù)裝載寄存器;然后在TIMx_CCR1寄存器中填寫比較值,在TIMx_ARR寄存器中填寫自動(dòng)裝載值,修改UG位來(lái)產(chǎn)生一個(gè)新,然后等待在TI2上的一個(gè)外部觸發(fā)。本中,CC1P=0。在這個(gè)子中,TIMx_CR1 寄存器中的DIR 和CMS 位應(yīng)該置低。因?yàn)橹恍枰粋€(gè)脈沖,所以須在下一個(gè)新(當(dāng)計(jì)數(shù)器從自動(dòng)裝載值翻轉(zhuǎn)到0)時(shí)設(shè)置TIMx_CR1 寄存器中的OPM=1,以停止計(jì)數(shù)。特殊情況:OCx快速使能在 沖模式下,在TIx 輸入腳的邊沿檢測(cè)邏輯設(shè)置CEN 位以啟動(dòng)計(jì)數(shù)器。然后計(jì)數(shù)器和比較值間的比較操作產(chǎn)生輸出的轉(zhuǎn)

38、換。但是這些操作需要一定的時(shí)鐘周期,因此它限制可得到的最小延時(shí)tDELAY。如果要以最小延時(shí)輸出波形,可以設(shè)置TIMx_CCMRx 寄存器中的OCxFE 位;此時(shí)OCxREF(和OCx)被強(qiáng)制響應(yīng)激勵(lì)而再依賴比較的結(jié)果,輸出的波樣。OCxFE 只在通道配置為PWM1 和PWM2 模式時(shí)起作用。時(shí)清除OCxREF信號(hào)形與比較匹配時(shí)的3.4.11 在外部對(duì)于一個(gè)給定的通道,在ETRF 輸入端(TIMx_CCMRx 寄存器中對(duì)應(yīng)的OCxCE位置“1)的高電平能夠把OCxREF 信號(hào)低,OCxREF 信號(hào)將保持為低直到發(fā)生下一次的UEV。該功能只能用于輸出比較和PWM 模式,而能用于強(qiáng)置模式。如,OC

39、xREF新17淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)信號(hào)可以聯(lián)到一個(gè)比較器的輸出,用于處電。這時(shí),ETR 必須配置如下:1.2.3.外部觸發(fā)預(yù)分頻器必須處于關(guān)閉: TIMx_SMCR 寄存器中的ETPS1:0=00。必須外部時(shí)鐘模式2:TIMx_SMCR寄存器中的ECE=0。外部觸發(fā)極性(ETP)和外部觸發(fā)濾波器(ETF)可以根據(jù)需要配置。清除TIMx 的OCxREF3.4.12 編碼器接口模式選擇編碼器接口模式的方法是:如果計(jì)數(shù)器只在TI2 的邊沿計(jì)數(shù),則置TIMx_SMCR寄存器中的SMS=001;如果只在TI1 邊沿計(jì)數(shù),則置SMS=010

40、;如果計(jì)數(shù)器同時(shí)在TI1 和TI2 邊沿計(jì)數(shù),則置SMS=011。通過(guò)設(shè)置TIMx_CCER 寄存器中的CC1P 和CC2P 位,可以選擇TI1 和TI2 極性;如果需要,還可以對(duì)輸入濾波器編程。兩個(gè)輸入TI1 和TI2 被用來(lái)作為增編碼器的接口。參看表39,假定計(jì)數(shù)器已經(jīng)啟動(dòng)(TIMx_CR1 寄存器中的CEN=1),則計(jì)數(shù)器由每次在TI1FP1 或TI2FP2 上的有效跳變驅(qū)動(dòng)。TI1FP1 和TI2FP2 是TI1 和TI2 在通過(guò)輸入濾波器和極性后的信號(hào);如果沒(méi)有濾波和變相,則TI1FP1=TI1;如果沒(méi)有濾波和變相,則TI2FP2=TI2。根據(jù)兩個(gè)輸入信號(hào)的跳變順序,產(chǎn)生計(jì)數(shù)脈沖和方

41、向信號(hào)。依據(jù)兩個(gè)輸入信號(hào)的跳變順序,計(jì)數(shù)器向上或向下計(jì)數(shù),因此TIMx_CR1 寄存器的DIR位由硬件進(jìn)相應(yīng)的設(shè)置。管計(jì)數(shù)器是依靠TI1 計(jì)數(shù)、依靠TI2 計(jì)數(shù)或者同時(shí)依靠TI1 和TI2 計(jì)數(shù)。在任一輸入(TI1 或者TI2)跳變時(shí)都會(huì)重新計(jì)算DIR位。編碼器接口模式基本上相當(dāng)于使用一個(gè)帶有方向選擇的外部時(shí)鐘。這意味著計(jì)數(shù)器只在0 到TIMx_ARR 寄存器中自動(dòng)裝載值之間連續(xù)計(jì)數(shù)(根據(jù)方向,或是0到ARR 計(jì)數(shù),或是ARR 到0 計(jì)數(shù))。所以在開(kāi)始計(jì)數(shù)之前必須配置TIMx_ARR;同樣,捕獲器、比較器、預(yù)分頻器、觸發(fā)輸出特性等仍工作如常。在這個(gè)模式下,計(jì)數(shù)器依照增編碼器的速和方向被自動(dòng)的修

42、改,因此,它的內(nèi)容始終指示著編碼器的位置。計(jì)數(shù)方向與相連的傳感器旋轉(zhuǎn)的方向?qū)?yīng)。下表出所有可能的可能的組合,假設(shè)TI1 和TI2 同時(shí)變換。18淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)一個(gè)外部的增編碼器直接和MCU 連接需要外部接口邏輯。但是,一般使用比較器將編碼器的差動(dòng)輸出轉(zhuǎn)換到數(shù)字信號(hào),這大大增加抗噪聲干擾能。編碼器輸出的第三個(gè)信號(hào)表示機(jī)械點(diǎn),可以連接到一個(gè)外部中斷輸入和觸發(fā)一個(gè)計(jì)數(shù)器復(fù)位。下圖 給出一個(gè)計(jì)數(shù)器操作的實(shí),顯示計(jì)數(shù)信號(hào)的產(chǎn)生和方向。它還顯示當(dāng)選擇雙邊沿時(shí),輸入抖動(dòng)是如何被抑制的;這種情況可能會(huì)在傳感器的位置靠近一個(gè)轉(zhuǎn)換點(diǎn)事發(fā)生。在

43、這個(gè)子中,我們假定配置如下:CC1S=01 (TIMx_CCMR1 寄存器,IC1FP1CC2S=01 (TIMx_CCMR2 寄存器,IC2FP2到TI1)到TI2)CC1P=0 (TIMx_CCER 寄存器,IC1FP1 反相,IC1FP1=TI1) CC2P=0 (TIMx_CCER 寄存器,IC2FP2 反相,IC2FP2=TI2)SMS=011 (TIMx_SMCR 寄存器,所有的輸入均在上升沿和下沿有效).CEN=1 (TIMx_CR1 寄存器,計(jì)數(shù)器使能)下圖為當(dāng)IC1FP1 極性反相時(shí)計(jì)數(shù)器的操作實(shí)(CC1P=1,其他配置與上相同)當(dāng)定時(shí)器配置成編碼器接口模式時(shí),提供傳感器當(dāng)前

44、位置的信息。使用第二個(gè)配置在捕獲模19淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)式定時(shí)器測(cè)兩個(gè)編碼器的間隔,可以獲得動(dòng)態(tài)的信息(速,)。指示,機(jī)械點(diǎn)的編碼器輸出可被用做此目的。根據(jù)兩個(gè)間的間隔,可以按照固定的時(shí)間讀出計(jì)數(shù)器。如果可能的話,你可以把計(jì)數(shù)器的值鎖存到第三個(gè)輸入捕獲寄存器(捕獲信號(hào)必須是周期的并且可以由另一個(gè)定時(shí)器產(chǎn)生)。它也可以通過(guò)一個(gè)由實(shí)時(shí)時(shí)鐘產(chǎn)生的DMA 請(qǐng)求來(lái)它的值。3.4.15 定時(shí)器同步所有TIMx 定時(shí)器在內(nèi)部相連,用于定時(shí)器同步或。當(dāng)一個(gè)定時(shí)器處于主模式時(shí),它可以對(duì)另一個(gè)處于從模式的定時(shí)器的計(jì)數(shù)器進(jìn)復(fù)位、啟動(dòng)、停止或提供時(shí)鐘

45、等操作。下圖顯示觸發(fā)選擇和主模式選擇模塊的概況。使用一個(gè)定時(shí)器作為另一個(gè)的預(yù)分頻器如:可以配置定時(shí)器1 作為定時(shí)器2 的預(yù)分頻器。參考圖113,進(jìn)下述操作: 配置定時(shí)器1 為主模式,它可以在每一個(gè)新UEV 時(shí)輸出一個(gè)周期的觸發(fā)信號(hào)。在TIM1_CR2 寄存器的MMS=010時(shí),每次產(chǎn)生一個(gè)新升沿信號(hào)。時(shí)在TRGO1 上產(chǎn)生一個(gè)上 連接定時(shí)器1 的TRGO1 輸出至定時(shí)器2,定時(shí)器2 必須配置為使用ITR1作為內(nèi)部觸發(fā)的從模式。設(shè)置TIM2_SMCR 寄存器的TS=001。 然后把從模式器置于外部時(shí)鐘模式1(TIM2_SMCR 寄存器的SMS=111);這樣定時(shí)器2 即可由定時(shí)器1 周期的上升沿

46、(即定時(shí)器1 的計(jì)數(shù)器溢出)信號(hào)驅(qū)動(dòng)。 最后,必須設(shè)置相應(yīng)(TIMx_CR1 寄存器)的CEN 位分別啟動(dòng)兩個(gè)定時(shí)器。注: 如果OCx 已被選中為定時(shí)器1 的觸發(fā)輸出(MMS=1xx) ,它的上升沿用于驅(qū)動(dòng)定時(shí)器2 的計(jì)數(shù)器。使用一個(gè)定時(shí)器去使能另一個(gè)定時(shí)器在這個(gè)子中,定時(shí)器2 的由定時(shí)器1 的輸出比較啟動(dòng)。定時(shí)器2 只當(dāng)定時(shí)器1 的OC1REF對(duì)分頻的內(nèi)部時(shí)鐘計(jì)數(shù)。兩個(gè)定時(shí)器的時(shí)鐘頻都是由預(yù)分頻器對(duì)CK_INT除以T=fCK_INT/3)。為3( 配置定時(shí)器1 為主模式,送出它的輸出比較參考信號(hào)(OC1REF)為觸發(fā)輸出(TIM1_CR2寄存器的MMS=100)配置定時(shí)器1 配置定時(shí)器2配置

47、定時(shí)器2的OC1REF 波形(TIM1_CCMR1 寄存器)從定時(shí)器1 獲得輸入觸發(fā)(TIM2_SMCR 寄存器的TS=001)為門控模式(TIM2_SMCR 寄存器的SMS=101)置TIM2_CR1 寄存器的CEN=1 以使能定時(shí)器2置TIM1_CR1 寄存器的CEN=1 以啟動(dòng)定時(shí)器120淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3 PWM 例程實(shí)驗(yàn)注: 定時(shí)器2 的時(shí)鐘與定時(shí)器1 的時(shí)鐘同步,這個(gè)模式只影響定時(shí)器2 計(jì)數(shù)器的啟動(dòng)信號(hào)。使用一個(gè)定時(shí)器去啟動(dòng)另一個(gè)定時(shí)器在這個(gè)子中,使用定時(shí)器1 的新使能定時(shí)器2。一旦定時(shí)器1 產(chǎn)生新,定時(shí)器2 即從它當(dāng)前的數(shù)值(可以

48、是非0)依分頻的內(nèi)部時(shí)鐘開(kāi)始計(jì)數(shù)。在收到觸發(fā)信號(hào)時(shí),定時(shí)器2 的CEN位被自動(dòng)地置1,同時(shí)計(jì)數(shù)器開(kāi)始計(jì)數(shù)直到寫0 到TIM2_CR1 寄存器的CEN位。兩個(gè)定時(shí)器的時(shí)鐘頻都是由預(yù)分頻器對(duì)CK_INT除以3(T=fCK_INT/3)。 配置定時(shí)器1MMS=010)。為主模式,送出它的新(UEV)做為觸發(fā)輸出(TIM1_CR2寄存器的配置定時(shí)器1 配置定時(shí)器2配置定時(shí)器2的周期(TIM1_ARR 寄存器)。從定時(shí)器1 獲得輸入觸發(fā)(TIM2_SMCR 寄存器的TS=001)為觸發(fā)模式(TIM2_SMCR 寄存器的SMS=110)置TIM1_CR1 寄存器的CEN=1 以啟動(dòng)定時(shí)器1使用一個(gè)定時(shí)器作

49、為另一個(gè)的預(yù)分頻器如:可以配置定時(shí)器1 作為定時(shí)器2 的預(yù)分頻器。參考圖113,進(jìn)下述操作: 配置定時(shí)器1 為主模式,送出它的新UEV 做為觸發(fā)輸出(TIM1_CR2 寄存器的MMS=010)。每次計(jì)數(shù)器溢出時(shí)輸出一個(gè)周期信號(hào)。配置定時(shí)器1 配置定時(shí)器2配置定時(shí)器2的周期(TIM1_ARR 寄存器)。從定時(shí)器1 獲得輸入觸發(fā)(TIM2_SMCR 寄存器的TS=001) 使用外部時(shí)鐘模式(TIM2_SMCR 寄存器的SMS=111)置TIM1_CR2 寄存器的CEN=1 以啟動(dòng)定時(shí)器2。置TIM1_CR1 寄存器的CEN=1 以啟動(dòng)定時(shí)器1。使用一個(gè)外部觸發(fā)同步地啟動(dòng)2 個(gè)定時(shí)器在這個(gè)子中,設(shè)置

50、當(dāng)定時(shí)器1 的TI1 輸入上升時(shí)使能定時(shí)器1,使能定時(shí)器1 的同時(shí)使能定時(shí)器2。為保證計(jì)數(shù)器的對(duì)齊,定時(shí)器1 必須配置為主/從模式(對(duì)應(yīng)TI1 為從,對(duì)應(yīng)定時(shí)器2 為主): 配置定時(shí)器1MMS=001)。為主模式,送出它的使能做為觸發(fā)輸出(TIM1_CR2 寄存器的配置定時(shí)器1 配置定時(shí)器1 配置定時(shí)器1 配置定時(shí)器2配置定時(shí)器2為從模式,從TI1 獲得輸入觸發(fā)(TIM1_SMCR 寄存器的TS=100)。為觸發(fā)模式(TIM1_SMCR 寄存器的SMS=110)。為主/從模式,TIM1_SMCR 寄存器的MSM=1。從定時(shí)器1 獲得輸入觸發(fā)(TIM2_SMCR 寄存器的TS=001)為觸發(fā)模式

51、(TIM2_SMCR 寄存器的SMS=110)。當(dāng)定時(shí)器1 的TI1 上出現(xiàn)一個(gè)上升沿時(shí),兩個(gè)定時(shí)器同步地依內(nèi)部時(shí)鐘開(kāi)始計(jì)數(shù),兩個(gè)TIF標(biāo)志也同時(shí)設(shè)置。3.5 TIMx寄存器描述3.5.1寄存器1(TIMx_CR1)偏移地址:0x00復(fù)位值:0x000021淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)22淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)3.5.2寄存器2(TIMx_CR2)偏移地址:0x04復(fù)位值:0x000023淘寶:http:/http奮斗版 STM32 開(kāi)發(fā)板例程詳解TIM3PWM 例程實(shí)驗(yàn)3.5.3 從模式偏移

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論