日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2024年09月22日(星期日)

正在發(fā)生

2018年09月22日 | 【STM32電機(jī)方波】記錄3——TIM1時(shí)基初始化配置

發(fā)布者:Blissful567 來源: eefocus關(guān)鍵字:STM32  電機(jī)方波  TIM1  時(shí)基初始化 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

定時(shí)器分類 :
STM32F1x 系列中,除了互聯(lián)型的產(chǎn)品,共有 8 個(gè)定時(shí)器,分為基本定時(shí)器,通用定時(shí)器和高級(jí)定時(shí)器。

基本定時(shí)器 TIM6 和 TIM7 是一個(gè) 16 位的只能向上計(jì)數(shù)的定時(shí)器,只能定時(shí),沒有外部 IO。

通用定時(shí)器 TIM2/3/4/5 是一個(gè) 16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以輸出比較,可以輸入捕捉,每個(gè)定時(shí)器有四個(gè)外部 IO。

高級(jí)定時(shí)器 TIM1/8是一個(gè) 16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以輸出比較,可以輸入捕捉,還可以有三相電機(jī)互補(bǔ)輸出信號(hào),每個(gè)定時(shí)器有 8 個(gè)外部 IO。 

【STM32電機(jī)方波】記錄3——TIM1時(shí)基初始化配置



高級(jí)定時(shí)器TIM1的庫函數(shù):

【STM32電機(jī)方波】記錄3——TIM1時(shí)基初始化配置


定時(shí)器TIM1時(shí)基結(jié)構(gòu)體缺省值:

{

TIM1_Period =TIM1_Period_Reset_Mask;// 定時(shí)器周期,設(shè)定自動(dòng)重載寄存器TIMx_ARR 的值

    TIM1_Prescaler = TIM1_Prescaler_Reset_Mask;//預(yù)分頻器,設(shè)定TIMx_PSC 寄存器的值,

    TIM1_CKD =TIM1_CKD_DIV1;               // 時(shí)鐘分頻 

    TIM1_CounterMode = TIM1_CounterMode_Up; //計(jì)數(shù)模式(高級(jí)定時(shí)器有5種模式)

    TIM1_RepetitionCounter = TIM1_RepetitionCounter_Reset_Mask;//重復(fù)計(jì)數(shù)器 

}


TIM1 時(shí)基初始化及中斷子程序配置:

void TIM1_TimeBaseInit(u16 arr,u16 psc)

{

 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //TIM1時(shí)基結(jié)構(gòu)體

 NVIC_InitTypeDef NVIC_InitStructure;

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //①時(shí)鐘 TIM1 使能

 

 TIM_TimeBaseStructure.TIM_Period = arr; //設(shè)置自動(dòng)重裝載寄存器ARR周期的值

 TIM_TimeBaseStructure.TIM_Prescaler =psc; //設(shè)置時(shí)鐘頻率除數(shù)的預(yù)分頻值

 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //設(shè)置時(shí)鐘分割

 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM 向上計(jì)數(shù)

 TIM_TimeBaseStructure.TIM_RepetitionCounter=0; //計(jì)數(shù)頻率為72MHz

 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //②初始化 TIM1

 TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE ); //③允許更新中斷  //中斷優(yōu)先級(jí) NVIC 設(shè)置

 

 NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn; //TIM1 中斷

 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占優(yōu)先級(jí) 1 級(jí)

 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //從優(yōu)先級(jí) 3 級(jí)

 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能

 NVIC_Init(&NVIC_InitStructure); //④初始化 NVIC 寄存器


 TIM_Cmd(TIM1, ENABLE); //⑤使能 TIM1

}

void TIM1_IRQHandler(void) //TIM1 中斷

{

    if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) //檢查 TIM1 更新中斷發(fā)生與否

   {

      TIM_ClearFlag(TIM1, TIM_IT_Update ); //清除 TIM1 更新中斷標(biāo)志

        ………………………………………………………………

    }

}

發(fā)生中斷時(shí)間=(TIM_Prescaler+1)* (TIM_Period+1)/FLK


基本定時(shí)器的核心是時(shí)基,通用計(jì)時(shí)器和高級(jí)定時(shí)器也有。 對(duì)于高級(jí)定時(shí)器TIM1 來說:

1、時(shí)鐘源 

定時(shí)器時(shí)鐘TIMxCLK,即內(nèi)部時(shí)鐘CK_INT,經(jīng)APB2預(yù)分頻器后分頻提供,如果APB2 預(yù)分頻系數(shù)等于 1,則頻率不變,否則頻率乘以 2,庫函數(shù)中 APB2 預(yù)分頻的系數(shù)是 2,即 PCLK2=36M,所以定時(shí)器時(shí)鐘 TIMxCLK=36*2=72M 。 

2、計(jì)數(shù)器時(shí)鐘 

定時(shí)器時(shí)鐘經(jīng)過 PSC 預(yù)分頻器之后,即 CK_CNT,用來驅(qū)動(dòng)計(jì)數(shù)器計(jì)數(shù)。PSC 是一個(gè)16 位的預(yù)分頻器,可以對(duì)定時(shí)器時(shí)鐘 TIMxCLK 進(jìn)行 1~65536 之間的任何一個(gè)數(shù)進(jìn)行分頻。 

具體計(jì)算方式為:CK_CNT=TIMxCLK/(PSC+1)。 

3.計(jì)數(shù)器 

計(jì)數(shù)器 CNT 是一個(gè) 16 位的計(jì)數(shù)器,只能往上計(jì)數(shù),最大計(jì)數(shù)值為 65535。當(dāng)計(jì)數(shù)達(dá)到自動(dòng)重裝載寄存器的時(shí)候產(chǎn)生更新事件,并清零從頭開始計(jì)數(shù)。 

4、自動(dòng)重裝載寄存器 

自動(dòng)重裝載寄存器 ARR 是一個(gè) 16 位的寄存器,這里面裝著計(jì)數(shù)器能計(jì)數(shù)的最大數(shù)值。當(dāng)計(jì)數(shù)到這個(gè)值的時(shí)候,如果使能了中斷的話,定時(shí)器就產(chǎn)生溢出中斷。 

5. 定時(shí)時(shí)間的計(jì)算 

定時(shí)器的定時(shí)時(shí)間等于計(jì)數(shù)器的中斷周期乘以中斷的次數(shù)。計(jì)數(shù)器在 CK_CNT 的驅(qū)動(dòng)下,計(jì)一個(gè)數(shù)的時(shí)間則是 CK_CLK 的倒數(shù),等于:1/(TIMxCLK/(PSC+1)),產(chǎn)生一次中斷的時(shí)間則等于:1/(CK_CLK * ARR)。如果在中斷服務(wù)程序里面設(shè)置一個(gè)變量 time,用來記錄中斷的次數(shù),那么就可以計(jì)算出我們需要的定時(shí)時(shí)間等于: 1/CK_CLK *(ARR+1)*time。 



BLCD電機(jī)的起動(dòng):

按下功能鍵,令高級(jí)定時(shí)器TIM1 輸出 PWM 方波、進(jìn)入TIM1中斷,通過兩相通電法測定初始狀態(tài)的電機(jī)。具體的操作是給任意兩相通電,并控制電機(jī)電流不致過大,啟動(dòng)電機(jī)做一次換向,通電一段時(shí)間后,轉(zhuǎn)子就會(huì)轉(zhuǎn)到與該通電狀態(tài)對(duì)應(yīng)的預(yù)知位置,完成轉(zhuǎn)子的定位

PWM輸出:

PWM的配置在其結(jié)構(gòu)體 TIM_Period(周期設(shè)定)、TIM_Prescaler(分頻)、TIM_OCMode(輸出模式)、TIM_OutputNState(互補(bǔ)輸出狀態(tài))、TIM_Pulse(捕獲比較器的值,即設(shè)定PWM的占空比)等的配置。另外對(duì)于BLDC來說,PWM波形使用TIM1產(chǎn)生,1、2、3三個(gè)通道產(chǎn)生3路PWM驅(qū)動(dòng)六個(gè)MOSFET,4通道用于ADC采樣,而ADC1掃描3個(gè)通道獲取反電動(dòng)勢,其掃描結(jié)果由DMA傳輸。


關(guān)鍵字:STM32  電機(jī)方波  TIM1  時(shí)基初始化 引用地址:【STM32電機(jī)方波】記錄3——TIM1時(shí)基初始化配置

上一篇:【STM32電機(jī)方波】記錄4——PWM輸出配置
下一篇:【STM32電機(jī)方波】記錄2——NVIC中斷基本設(shè)置

推薦閱讀

看門狗概念: 在由單片機(jī)構(gòu)成的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會(huì)受到來自外界磁場的干擾,造成各種寄存器和內(nèi)存的數(shù)據(jù)混亂,會(huì)導(dǎo)致程序指針錯(cuò)誤,不在程序區(qū),取出錯(cuò)誤的程序指令等,都會(huì)陷入死循環(huán)。程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無法繼續(xù)正常工作,會(huì)造成整個(gè)系統(tǒng)陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果。看門狗就是定期的查看芯片...
Engadget稱贊了iPhone 11手機(jī)699美元的實(shí)惠價(jià)格,CNBC稱蘋果的豎屏模式是最好的,HardwareZone稱A13仿生芯片在競爭中“大獲全勝”?! ”M管蘋果只是節(jié)選每篇評(píng)測中說比較好的部分,但總體來說,大多數(shù)人還是對(duì)新款iPhone大加贊賞?! 〔贿^,也有一些評(píng)論認(rèn)為,除了攝像頭改進(jìn)之外,今年的更新基本上不太多的,沒有太多創(chuàng)新功能。  除了iPhon...
9月17日上午,華為技術(shù)有限公司CEO任正非帶隊(duì)訪問北京大學(xué)。北京大學(xué)黨委書記邱水平、校長郝平會(huì)見任正非一行。雙方在北京大學(xué)英杰交流中心陽光廳舉行專家座談會(huì)。華為技術(shù)有限公司董事、戰(zhàn)略研究院院長徐文偉,中央研究院總裁查鈞,北京大學(xué)常務(wù)副校長詹啟敏、龔旗煌,副校長張平文、黃如,校長助理、秘書長孫慶偉,北大相關(guān)職能部門和院系負(fù)責(zé)人、專家學(xué)...
在石油化工生物制藥這些經(jīng)常能夠接觸到可燃有毒氣體的行業(yè),或者是管道設(shè)備中存在可燃有毒氣體的行業(yè),便攜式氣體檢測儀是我們經(jīng)常用到的儀器,它能夠幫助我們的工作人員檢查工作環(huán)境中的可燃有毒氣體是否超過標(biāo)準(zhǔn)值,同時(shí)也能夠檢測設(shè)備或者管道的可燃有毒氣體是否發(fā)生泄漏,檢測的濃度可以達(dá)到ppm級(jí)別甚至更低。但是我們?cè)谫徺I新的氣體檢測儀的時(shí)候,因...

史海拾趣

問答坊 | AI 解惑

linux內(nèi)核編程

rt,linux內(nèi)核編程的一本書…

查看全部問答∨

傳感器

本帖最后由 paulhyde 于 2014-9-15 04:18 編輯 各種傳感器資料,我還沒看完,先分享一下。。。  …

查看全部問答∨

第四屆圖形化系統(tǒng)設(shè)計(jì)巡回研討會(huì)

活動(dòng)時(shí)間/地點(diǎn): 2010/04/06  14:00 無錫 無錫萬怡酒店2樓會(huì)議中心(無錫中山路335號(hào)) 2010/04/07  14:00 南京 南京中山大廈四樓友誼廳(南京中山路200號(hào)) 2010/04/13  14:00 武漢 武漢湖濱花園酒店3樓多功能廳(武 ...…

查看全部問答∨

用vb程序遠(yuǎn)程控制K6220恒流源的問題

要實(shí)現(xiàn)的是,通過計(jì)算機(jī)vb編程,對(duì)K6220恒流源進(jìn)行控制。 K6220恒流源經(jīng)由ieee488接口,連接到計(jì)算機(jī)上的pci-1670數(shù)據(jù)采集卡(研華工控出產(chǎn)),計(jì)算機(jī)上已經(jīng)安裝pci-1670的驅(qū)動(dòng)。 編程對(duì)k6220進(jìn)行控制時(shí)出現(xiàn)錯(cuò)誤。 舉例: 對(duì)6220進(jìn)行初始化 ...…

查看全部問答∨

我的液晶屏讀忙時(shí)為什么總是忙啊?

在一條指令或數(shù)據(jù)還沒發(fā)送前,我做了個(gè)小程序去測試忙信號(hào),居然是忙,是不是很奇怪,會(huì)不會(huì)壞了? 我的程序沒有問題的。硬件連接也沒問題的。 …

查看全部問答∨

430和液晶控制器t6963c 電平兼容的問題

t6963c 認(rèn)可的高電平,最小為0.7Vdd = 3.5v ,應(yīng)該怎樣才能兼容呢? 有沒有人用過,能不能給格接線圖看看…

查看全部問答∨

mini 2440 ADC中斷的奇怪問題??!請(qǐng)教一下大家!

          最近在學(xué)習(xí)MINI2440的ADC功能,發(fā)現(xiàn)在ADC中斷函數(shù)設(shè)置斷點(diǎn)調(diào)試,程序不進(jìn)ADC中斷函數(shù)!!程序如下:void ADC_Init(void){     rADCCON |=(1<<14)|(49<<6)|(0 ...…

查看全部問答∨

【設(shè)計(jì)工具】 較全的FPGA學(xué)習(xí)資料

800Mbps準(zhǔn)循環(huán)LDPC碼編碼器的FPGA實(shí)現(xiàn)CCSDS星載圖像壓縮模塊的FPGA設(shè)計(jì)與實(shí)現(xiàn)FPGA和Nios_軟核的語音識(shí)別系統(tǒng)的研究RC4加密算法的FPGA設(shè)計(jì)與實(shí)現(xiàn)多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計(jì)高速專用GFP處理器的FPGA實(shí)現(xiàn)基于DSP與FPGA的運(yùn)動(dòng)控制器設(shè)計(jì)基 ...…

查看全部問答∨

匠人的編程思路 手記 的 個(gè)人整理

最近,覺得,其實(shí)現(xiàn)在對(duì)于編程,我已經(jīng)不太需要太過于糾結(jié)語法了,雖然自己還是個(gè)新手,但我的意思是,我現(xiàn)階段更重要的是 學(xué)習(xí) 編程思路。所以,我開始找這方面的資料看,首先是搜索 軟件工程思想,找到一本經(jīng)典大書,剛下好還沒開始看: 代碼大全 ...…

查看全部問答∨

想寫一個(gè)430串口通訊的上位機(jī).......求科普用哪種語言?

本帖最后由 huixianfxt 于 2014-1-13 10:07 編輯 功能就是PC接受串口傳送的數(shù)據(jù),將這些數(shù)據(jù)在PC機(jī)上打點(diǎn)顯示圖像(也就是一條變化的曲線)。寫上位機(jī)應(yīng)該用C++還是VB呢還是C#呢,聲明一點(diǎn)本人這幾門語言都沒學(xué)過,只有c語言基礎(chǔ),試問用哪一種語 ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved