娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月30日(星期四)

2019年01月30日 | STM32定時器5的輸入捕獲實驗

發(fā)布者:大樹下的大白菜y 來源: eefocus關(guān)鍵字:STM32  定時器5  輸入捕獲 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

此處使用的普中開發(fā)板,實驗內(nèi)容定時器5輸入捕獲通道1的高電平時長。


軟件實現(xiàn)方法:


定時器5主要使用了兩個功能:


①時基單元;②輸入捕獲;


從下文可知,通過定時器5捕獲到相應(yīng)的極性(eg:上升沿或高電平and so on)后,保存計數(shù)器的當(dāng)前值到捕獲/比較寄存器(TIMx_CCRx)中。而后,通過第二次捕獲成功后,通過差值就可以求出該極性的周期或保持時間。此實驗室捕獲高電平的時間,通過先捕獲上升沿再捕獲下降沿,即可求出一個高電平的時長。

數(shù)據(jù)手冊描述如下:


在輸入捕獲模式下,當(dāng)檢測到ICx信號上相應(yīng)的邊沿后,計數(shù)器的當(dāng)前值被鎖存到捕獲/比較寄存

器(TIMx_CCRx)中。當(dāng)發(fā)生捕獲事件時,相應(yīng)的CCxIF標(biāo)志(TIMx_SR寄存器)被置1,如果開放

了中斷或者DMA操作,則將產(chǎn)生中斷或者DMA請求。如果發(fā)生捕獲事件時CCxIF標(biāo)志已經(jīng)為

高,那么重復(fù)捕獲標(biāo)志CCxOF(TIMx_SR寄存器)被置1。寫CCxIF=0可清除CCxIF,或讀取存儲

在TIMx_CCRx寄存器中的捕獲數(shù)據(jù)也可清除CCxIF。寫CCxOF=0可清除CCxOF。 

以下例子說明如何在TI1輸入的上升沿時捕獲計數(shù)器的值到TIMx_CCR1寄存器中,步驟如下: 

● 選擇有效輸入端:TIMx_CCR1必須連接到TI1輸入,所以寫入TIMx_CCR1寄存器中的

CC1S=01,只要CC1S不為’00’,通道被配置為輸入,并且TIMx_CCR1寄存器變?yōu)橹蛔x。 

●  根據(jù)輸入信號的特點,配置輸入濾波器為所需的帶寬(即輸入為TIx時,輸入濾波器控制位是

TIMx_CCMRx寄存器中的ICxF位)。假設(shè)輸入信號在最多5個內(nèi)部時鐘周期的時間內(nèi)抖動,

我們須配置濾波器的帶寬長于5個時鐘周期;因此我們可以(以fDTS頻率)連續(xù)采樣8次,以確

認(rèn)在TI1上一次真實的邊沿變換,即在TIMx_CCMR1寄存器中寫入IC1F=0011。 

● 選擇TI1通道的有效轉(zhuǎn)換邊沿,在TIMx_CCER寄存器中寫入CC1P=0(上升沿)。 

● 配置輸入預(yù)分頻器。在本例中,我們希望捕獲發(fā)生在每一個有效的電平轉(zhuǎn)換時刻,因此預(yù)

分頻器被禁止(寫TIMx_CCMR1寄存器的IC1PS=00)。 

● 設(shè)置TIMx_CCER寄存器的CC1E=1,允許捕獲計數(shù)器的值到捕獲寄存器中(使能輸入捕獲)。 

● 如果需要,通過設(shè)置TIMx_DIER寄存器中的CC1IE位允許相關(guān)中斷請求,通過設(shè)置

TIMx_DIER寄存器中的CC1DE位允許DMA請求。 

當(dāng)發(fā)生一個輸入捕獲時: 

● 產(chǎn)生有效的電平轉(zhuǎn)換時,計數(shù)器的值被傳送到TIMx_CCR1寄存器。 

●  CC1IF標(biāo)志被設(shè)置(中斷標(biāo)志)。當(dāng)發(fā)生至少2個連續(xù)的捕獲時,而CC1IF未曾被清除,

CC1OF也被置1。 




● 如設(shè)置了CC1IE位,則會產(chǎn)生一個中斷。 

● 如設(shè)置了CC1DE位,則還會產(chǎn)生一個DMA請求。 

為了處理捕獲溢出,建議在讀出捕獲溢出標(biāo)志之前讀取數(shù)據(jù),這是為了避免丟失在讀出捕獲溢

出標(biāo)志之后和讀取數(shù)據(jù)之前可能產(chǎn)生的捕獲溢出信息。




使用庫函數(shù)可以簡化許多步驟,畢竟是別人包裝好的函數(shù)來著。


TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;//聲明一個結(jié)構(gòu)體變量,用來初始化定時器

TIM_ICInitTypeDef TIM5_ICInitStructure;

 

NVIC_InitTypeDef NVIC_InitStructure;

 

/* 開啟定時器5時鐘 */

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE); //使能TIM5時鐘

 

TIM_ClearITPendingBit(TIM5,TIM_IT_Update|TIM_IT_CC1); //清除中斷和捕獲標(biāo)志位

 

TIM_TimeBaseInitStructure.TIM_Period = 0xffff; //設(shè)定計數(shù)器自動重裝值

TIM_TimeBaseInitStructure.TIM_Prescaler = 71;   //以1Mhz的頻率計數(shù) 一次即是1us

TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;   //設(shè)置時鐘分割:TDTS = Tck_tim

TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計數(shù)模式

TIM_TimeBaseInit(TIM5,&TIM_TimeBaseInitStructure);//根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時間基數(shù)單位

TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //選擇輸入端 IC1映射到TI1上 

TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕獲 

TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上 

TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置輸入分頻,不分頻 

TIM5_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=0000 配置輸入濾波器 不濾波 

TIM_ICInit(TIM5, &TIM5_ICInitStructure); //初始化TIM5輸入捕獲通道1

//中斷分組初始化

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn; //打開TIM5的全局中斷

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //搶占優(yōu)先級為0

NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; //響應(yīng)優(yōu)先級為1

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   //使能

NVIC_Init(&NVIC_InitStructure);

TIM_Cmd(TIM5,ENABLE); //使能或者失能TIMx外設(shè)

TIM_ITConfig(TIM5, TIM_IT_Update|TIM_IT_CC1, ENABLE ); //使能或者失能指定的TIM中斷


中斷處理函數(shù)

void TIM5_IRQHandler()   //定時器5輸入捕獲中斷函數(shù)

{

if((TIM5CH1_CAPTURE_STA&0X80)==0)//還未成功捕獲

{

if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)

{

if(TIM5CH1_CAPTURE_STA&0X40) //已經(jīng)捕獲到高電平了

{

if((TIM5CH1_CAPTURE_STA&0x3f)==0x3f)//高電平太長了

{

TIM5CH1_CAPTURE_STA|=0x80; //標(biāo)記成功捕獲了一次

TIM5CH1_CAPTURE_VAL=0xffff;

}

else

{

TIM5CH1_CAPTURE_STA++;

}

}

}

}

if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET) //捕獲1發(fā)生捕獲事件

{

if(TIM5CH1_CAPTURE_STA&0X40) //捕獲到一個下降沿

{

TIM5CH1_CAPTURE_STA|=0X80; //標(biāo)記成功捕獲到一次上升沿 

TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5); //獲得TIMx輸入捕獲1的值

TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //設(shè)置為上升沿捕獲

}

else

{

TIM5CH1_CAPTURE_STA=0; //清空 

TIM5CH1_CAPTURE_VAL=0; 

TIM_SetCounter(TIM5,0); 

TIM5CH1_CAPTURE_STA|=0X40; //標(biāo)記捕獲到了上升沿 

TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling); //設(shè)置為下降沿捕獲

}

}

TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中斷標(biāo)志位

}


庫函數(shù)的處理方式,是將手冊上說到條件逐一封裝到TIM_ICInitTypeDef 結(jié)構(gòu)體中,再通過TIM_ICInit()函數(shù)將相應(yīng)的值填寫到寄存器中即可。


關(guān)鍵字:STM32  定時器5  輸入捕獲 引用地址:STM32定時器5的輸入捕獲實驗

上一篇:基于STM32使用超聲波HC-SR04模塊
下一篇:STM32之JTAG口作為普通IO使用

推薦閱讀

1月25日至30日,第一屆寒武紀(jì)ACM金牌集訓(xùn)營在北京大學(xué)深圳研究生院盛大舉辦。這是寒武紀(jì)智能、北大、港科大首次攜手發(fā)力,聚焦ACM領(lǐng)域。此次集訓(xùn)營由深圳市寒武紀(jì)智能科技有限公司(以下簡稱“寒武紀(jì)智能”)主辦,北京大學(xué)深圳研究生院青年創(chuàng)新創(chuàng)業(yè)中心聯(lián)合主辦,香港科技大學(xué)機(jī)器人與多感知實驗室協(xié)辦,深圳大學(xué)城科學(xué)結(jié)社作為校內(nèi)合作社團(tuán),主要以“ACM...
鼎龍股份創(chuàng)始人、董事長朱雙全 長江日報記者肖僖 攝集成電路芯片有一個關(guān)鍵制程——化學(xué)機(jī)械拋光,最多需要反復(fù)128次。國際先進(jìn)的芯片制造廠已使用7納米制程工藝,1納米相當(dāng)于6萬分之一根頭發(fā)絲,難度可想而知。過去,國內(nèi)拋光所用關(guān)鍵材料——CMP拋光墊,幾乎全部依賴進(jìn)口。位于武漢經(jīng)濟(jì)技術(shù)開發(fā)區(qū)的湖北鼎龍控股股份有限公司(以下簡稱“鼎龍股份”...
//程序中沒有做按鍵去抖,也沒有考慮多個鍵同時按下的情況。//最低兩位數(shù)碼管顯示相應(yīng)的按鍵(如按下S10,在顯示10;按下S25,則顯示25)//無按鍵按下的時候顯示FF//按鍵跟按鍵的掃描結(jié)果滿足如下關(guān)系://按鍵掃描結(jié)果(result)按鍵掃描結(jié)果 //K100XE7K180XB7//K110XEBK190XBB//K120XEDK200XBD//K130XEEK210XBE//K140XD7K220X77//K150XDBK230X7B//K160XDD...
1月20日,山西省第十三屆人民代表大會第四次會議,聽取并審議了省人民政府省長林武所作的《山西省人民政府工作報告》。十三五期間,山西規(guī)上工業(yè)企業(yè)研發(fā)活動實現(xiàn)全覆蓋。新一代半導(dǎo)體、手撕鋼、高端碳纖維、高鐵輪軸等一批關(guān)鍵技術(shù)和產(chǎn)品取得突破,信創(chuàng)、大數(shù)據(jù)、半導(dǎo)體等14個戰(zhàn)略性新興產(chǎn)業(yè)集群加快形成,戰(zhàn)略性新興產(chǎn)業(yè)增加值年均增長7.8%、快于規(guī)上工...

史海拾趣

問答坊 | AI 解惑

用數(shù)碼管做的時鐘: 似乎就是不能加上鬧鈴的!

用數(shù)碼管做的時鐘: 似乎就是不能加上鬧鈴功能的! 理由是: 跟顯示沖突了! 是這樣么?有沒有朋友做成的呢?…

查看全部問答∨

無線電發(fā)射設(shè)備型號核準(zhǔn)檢測的檢驗依據(jù)(含參考標(biāo)準(zhǔn))

無線電發(fā)射設(shè)備型號核準(zhǔn)檢測的檢驗依據(jù)(含參考標(biāo)準(zhǔn))…

查看全部問答∨

新聞早班車:最小級別的肖特基二極管

Torex推出了世界上最小級別的 0603 尺寸超小型肖特基二極管。 XBS013V1DR-G和XBS013R1DR-G是超小型封裝USP-2B01 (0.6 x 0.3 x h0.3mm)的肖特基二極管。超小型封裝有利于縮小實裝面積、節(jié)省空間。用于便攜式儀器等小功率電路中,特別是反向漏電流 ( ...…

查看全部問答∨

PB 5錯誤信息 Too much data space used by DLL's in MODULES section

Error: Too much data space used by DLL\'s in MODULES section   Current usage = 28032k, Maximum usage = 26624k.   Reduce DLL usage or move some DLL\'s into the FILES section. 能否增大這個 max usage??…

查看全部問答∨

新手求助:關(guān)于函數(shù)的使用 EZUSB_WaitForEEPROMWrite()

我剛剛接觸單片機(jī)和Keil編程,先從一些現(xiàn)有的例子入手,已有程序中使用到了一些函數(shù),比如EZUSB_WaitForEEPROMWrite(),這些函數(shù)應(yīng)該都是已經(jīng)寫好的函數(shù),而且函數(shù)的原形也已經(jīng)找到了。但是在哪里能查到這些函數(shù)的說明呢,自己編程的時候又怎樣使 ...…

查看全部問答∨

STM32接TFTLCD如何放連續(xù)圖片?

                                 按照AN2790文檔的說明,以240*320為例,放一幅圖片需要150K,如需要放動畫則需要在flash中存放N*150K的數(shù)據(jù),有沒 ...…

查看全部問答∨

數(shù)據(jù)手冊離你有多遠(yuǎn)??

一般,我們看數(shù)據(jù)手冊都是為了看數(shù)據(jù)手冊上的一些重要參數(shù),但是: 這些參數(shù)是真的嗎? 也就是說該芯片真的能做到數(shù)據(jù)手冊上所說的那些指標(biāo)嗎? 還是我們自己的原因使得該芯片不能達(dá)到數(shù)據(jù)手冊所標(biāo)榜的參數(shù)? 或者是說芯片生產(chǎn)商“夸大”了芯片 ...…

查看全部問答∨

英特爾最快處理器誕生:新款15核服務(wù)器處理器

本帖最后由 jameswangsynnex 于 2015-3-3 19:56 編輯 2月19日消息,英特爾推出的最新服務(wù)器處理器至強(qiáng)E7 v2系列采用了多達(dá)15個處理器核心,成為英特爾核心數(shù)最多的處理器。 最新的至強(qiáng)E7-4800 v2處理器基于Ivy Bridge架構(gòu),將是英特爾到目前為止 ...…

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

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

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

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 临江市| 永吉县| 嫩江县| 濮阳市| 苍山县| 额尔古纳市| 松江区| 临沭县| 吴堡县| 潮安县| 肃南| 丹寨县| 抚远县| 深圳市| 温泉县| 玉山县| 拉萨市| 桑日县| 宁安市| 绍兴县| 登封市| 松潘县| 镇坪县| 湄潭县| 蓝田县| 甘肃省| 丰宁| 财经| 冀州市| 准格尔旗| 沭阳县| 宿迁市| 多伦县| 溧水县| 望都县| 神池县| 盘锦市| 五常市| 惠来县| 大丰市| 徐汇区|