99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

liuxiaofei126
認(rèn)證:VIP會(huì)員
所在專(zhuān)題目錄 查看專(zhuān)題
多功能控制小車(chē)
STM32定時(shí)器的來(lái)龍去脈
底層程序如何在STM32上編譯運(yùn)行
從IIC實(shí)測(cè)波形入手搞懂IIC通信
實(shí)例講解(一)移位寄存器
單片機(jī)之USB 硬件和數(shù)據(jù)的四種傳輸方式
作者動(dòng)態(tài) 更多
stm32知識(shí)點(diǎn)總結(jié)
2021-11-24 23:12
工程師單片機(jī)LED項(xiàng)目
2021-11-11 07:46
電容型負(fù)載對(duì)跟隨器的影響
2021-10-28 23:33
圖騰柱和互補(bǔ)推挽兩個(gè)“小冤家”
2021-10-22 23:15
學(xué)習(xí)單片機(jī)的捷徑
2021-10-17 23:07

STM32定時(shí)器的來(lái)龍去脈

一、定時(shí)器介紹  

STM32F1的定時(shí)器非常多,由2個(gè)基本定時(shí)器(TIM6、TIM7)、4個(gè)通 用定時(shí)器(TIM2-TIM5)和2個(gè)高級(jí)定時(shí)器(TIM1、TIM8)組成。基本定 時(shí)器的功能最為簡(jiǎn)單,類(lèi)似于51單片機(jī)內(nèi)定時(shí)器。通用定時(shí)器是在基本 定時(shí)器的基礎(chǔ)上擴(kuò)展而來(lái),增加了輸入捕獲與輸出比較等功能。高級(jí)定 時(shí)器又是在通用定時(shí)器基礎(chǔ)上擴(kuò)展而來(lái),增加了可編程死區(qū)互補(bǔ)輸出、 重復(fù)計(jì)數(shù)器、帶剎車(chē)(斷路)功能,這些功能主要針對(duì)工業(yè)電機(jī)控制方面

1.1 通用定時(shí)器簡(jiǎn)介   

STM32F1的通用定時(shí)器包含一個(gè) 16 位自動(dòng)重載計(jì)數(shù)器(CNT),該計(jì) 數(shù)器由可編程預(yù)分頻器(PSC)驅(qū)動(dòng)。STM32F1的通用定時(shí)器可用于多種 用途,包括測(cè)量輸入信號(hào)的脈沖寬度(輸入捕獲)或者生成輸出波形(輸出 比較和PWM)等。 使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,脈 沖長(zhǎng)度和波形周期可以在幾個(gè)微秒到幾個(gè)毫秒間調(diào)整。STM32F1 的每個(gè) 通用定時(shí)器都是完全獨(dú)立的,沒(méi)有互相共享的任何資源。

STM32F1的通用定時(shí)器TIMx (TIM2-TIM5 )具有如下功能: 

(1)16 位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器(TIMx_CNT)。 

(2)16 位可編程(可以實(shí)時(shí)修改)預(yù)分頻器(TIMx_PSC),計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為 1~65535之間的任意數(shù)值。

 (3)4個(gè)獨(dú)立通道(TIMx_CH1-4),這些通道可以用來(lái)作為: A.輸入捕獲 B.輸出比較 C. PWM 生成(邊緣或中間對(duì)齊模式) D.單脈沖模式輸出

(4)可使用外部信號(hào)(TIMx_ETR)控制定時(shí)器,且可實(shí)現(xiàn)多個(gè)定時(shí)器互連(可以用1個(gè)定時(shí)器控制另外一個(gè)定時(shí)器)的同步電路。

 (5)發(fā)生如下事件時(shí)產(chǎn)生中斷/DMA請(qǐng)求: A.更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā)) B.觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) C.輸入捕獲 D.輸出比較 

(6)支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路 

(7)觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理

1.2 通用定時(shí)器結(jié)構(gòu)框圖 

我們把通用定時(shí)器結(jié)構(gòu)框圖分成 5 個(gè)子模塊,按照順序依次進(jìn)行簡(jiǎn)單介紹。

(1)標(biāo)號(hào) 1:時(shí)鐘源通用定時(shí)器的時(shí)鐘來(lái)源有 4 種可選:

A.內(nèi)部時(shí)鐘(CK_INT)

B.外部時(shí)鐘模式 1:外部輸入引腳 TIx(x=1,2,3,4)

C.外部時(shí)鐘模式 2:外部觸發(fā)輸入 ETR

D.內(nèi)部觸發(fā)輸入(ITRx(x=0,1,2,3))

(2)標(biāo)號(hào) 2:控制器

通用定時(shí)器控制器部分包括觸發(fā)控制器、從模式控制器以及編碼器接口。觸發(fā)控制器用來(lái)針對(duì)片內(nèi)外設(shè)輸出觸發(fā)信號(hào),比如為其它定時(shí)器提供時(shí)鐘和觸發(fā)DAC/ADC 轉(zhuǎn)換。從模式控制器可以控制計(jì)數(shù)器復(fù)位、啟動(dòng)、遞增/遞減、計(jì)數(shù)。編碼器接口專(zhuān)門(mén)針對(duì)編碼器計(jì)數(shù)而設(shè)計(jì)。 

(3)標(biāo)號(hào) 3:時(shí)基單元  通用定時(shí)器時(shí)基單元包括 3 個(gè)寄存器,分別是計(jì)數(shù)器寄存器(TIMx_CNT)、預(yù)分頻器寄存器(TIMx_PSC)、自動(dòng)重載寄存器(TIMx_ARR)。高級(jí)定時(shí)器中還有一個(gè)重復(fù)計(jì)數(shù)寄存器(TIMx_RCR),通用和基本定時(shí)器是沒(méi)有的。通用定時(shí)器這三個(gè)寄存器都是 16 位有效。而高級(jí)定時(shí)器的 TIMx_RCR 寄存器是 8 位有效。  

在這個(gè)時(shí)基單元中,有個(gè)預(yù)分頻器寄存器(TIMx_PSC),用于對(duì)計(jì)數(shù)器時(shí)鐘頻率進(jìn)行分頻,通過(guò)寄存器內(nèi)的相應(yīng)位設(shè)置,分頻系數(shù)值可在 1 到 65536 之間。由于從模式控制寄存器具有緩沖功能,因此預(yù)分頻器可實(shí)現(xiàn)實(shí)時(shí)更改,而新的預(yù)分頻比將在下一更新事件發(fā)生時(shí)被采用。  

在時(shí)基單元中,還有個(gè)計(jì)數(shù)寄存器(TIMx_CNT),通用定時(shí)器計(jì)數(shù)方式有向上計(jì)數(shù)、向下計(jì)數(shù)、向上向下計(jì)數(shù)(中心對(duì)齊計(jì)數(shù))。下面分別來(lái)介紹下這幾種計(jì)數(shù)方式:

4)標(biāo)號(hào) 4:輸入捕獲 

(5)輸出比較 

 二、通用定時(shí)器配置步驟(

1)使能定時(shí)器時(shí)鐘 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能TIM4時(shí)鐘 

(2)初始化定時(shí)器參數(shù),包含自動(dòng)重裝值,分頻系數(shù),計(jì)數(shù)方式等 

voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); 

typedef struct {  

uint16_t TIM_Prescaler; //定時(shí)器預(yù)分頻器  

 uint16_t TIM_CounterMode; //計(jì)數(shù)模式   

uint32_t TIM_Period; //定時(shí)器周期   

uint16_t TIM_ClockDivision; //時(shí)鐘分頻   

uint8_t TIM_RepetitionCounter; //重復(fù)計(jì)數(shù)器 

} TIM_TimeBaseInitTypeDef;

了解結(jié)構(gòu)體成員功能后,就可以進(jìn)行配置,例如:

 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;

 TIM_TimeBaseInitStructure.TIM_Period=1000; //自動(dòng)裝載值 自己定義

TIM_TimeBaseInitStructure.TIM_Prescaler=35999; //分頻系數(shù) 自己定義

TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;

 TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //設(shè)置向上計(jì)數(shù)模式

 TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure); 

定時(shí)器定時(shí)時(shí)間計(jì)算公式如下: Tout= ((per)*(psc+1))/Tclk; 1000*(35999+1)/72;

(3)設(shè)置定時(shí)器中斷類(lèi)型,并使能   v

oid TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState); 

(4)設(shè)置定時(shí)器中斷優(yōu)先級(jí),使能定時(shí)器中斷通道 NVIC初始化庫(kù)函數(shù)是NVIC_Init(); 

(5)開(kāi)啟定時(shí)器 void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState); 

(6)編寫(xiě)定時(shí)器中斷服務(wù)函數(shù)

三、定時(shí)器中斷編碼

進(jìn)入中斷函數(shù)

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 7
收藏 8
關(guān)注 211
成為作者 賺取收益
全部留言
0/200
  • dy-blNlwnWV 2021-02-17 10:05
    學(xué)習(xí)
    回復(fù)
  • keyhei66 2020-12-16 21:59
    圍觀學(xué)習(xí)
    回復(fù)
  • 蘭波 2020-11-20 09:33
    nice
    回復(fù)
  • lihui710884923 2020-11-19 16:28
    寫(xiě)的比較詳細(xì)
    回復(fù)
主站蜘蛛池模板: 亚洲欧美色图在线 | eee在线播放免费人成视频 | 成人天堂网 | 综合亚洲自拍 | 三级免费久久无码 | 嫩草国产 | 好大好爽好深国产在线 | 亚洲双插| 亚洲网一区二区三区 | 国产美女久久 | 中文在线www| 女人和拘做受全程看免费软件 | av九九 | 国产成人综合激情视频在线观看 | 国产精品久久久久久一区二区三区 | 免费观看69xx | 在线成人一区 | 国产精品久久久久久久久免费樱桃 | 国产粉嫩av| 日韩欧美大片在线观看 | 色中色成人导航 | 欧美一区二区三区少妇 | 天天草天天爽 | 日本a视频在线播放 | 免费看国产视频 | 国产69精品久久99不卡免费版 | 亚洲夜幕久久日韩精品一区 | 国产三级久久久 | 免费人成在线观看成人片 | 国产稚嫩高中生呻吟激情在线视频 | 欧美日韩亚洲中文字幕二区 | 蜜桃视频在线观看一区 | 亚洲国产精品久久久久久69 | 91色片 | 亚洲国产精品乱码一区二区三区 | 精品成人一区二区三区四区 | 精品综合久久久久久888蜜芽 | 亚洲色大网站WWW永久网站 | 久久久久人妻精品一区 | 久久香蕉三级国产黑人 | 麻豆影视av |