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

歷史上的今天

今天是:2025年03月02日(星期日)

2020年03月02日 | 【STM庫應(yīng)用】stm32 之 TIM (詳解二 脈沖寬度、周期測量)

發(fā)布者:翩翩輕舞 來源: eefocus關(guān)鍵字:STM庫  stm32  TIM  脈沖寬度  周期測量 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

今天主要是用TIM3進(jìn)行PWM的輸入模式,進(jìn)行對(duì)矩形波脈沖信號(hào)寬度以及其周期進(jìn)行測量,先來看一幅圖。

圖1 TIM內(nèi)部邏輯圖


我們先來看看datasheet上是怎么說的:


該模式是輸入捕獲模式的一個(gè)特例,除下列區(qū)別外,操作與輸入捕獲模式相同:

● 兩個(gè)ICx信號(hào)被映射至同一個(gè)TIx輸入。

● 這2個(gè)ICx信號(hào)為邊沿有效,但是極性相反。

● 其中一個(gè)TIxFP信號(hào)被作為觸發(fā)輸入信號(hào),而從模式控制器被配置成復(fù)位模式。

例如,你需要測量輸入到TI1上的PWM信號(hào)的長度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2

寄存器),具體步驟如下(取決于CK_INT的頻率和預(yù)分頻器的值) 

● 選擇TIMx_CCR1的有效輸入:置TIMx_CCMR1寄存器的CC1S=01(選擇TI1)。

● 選擇TI1FP1的有效極性(用來捕獲數(shù)據(jù)到TIMx_CCR1中和清除計(jì)數(shù)器):置CC1P=0(上升沿

有效)。

● 選擇TIMx_CCR2的有效輸入:置TIMx_CCMR1寄存器的CC2S=10(選擇TI1)。

● 選擇TI1FP2的有效極性(捕獲數(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。


我們從圖1上可以看出只有TI1FP1和TI2FP2連到了從模式控制器,所以PWM輸入模式只能使用TIMx_CH1 /TIMx_CH2信號(hào)。

圖2 IC1,IC2捕獲信號(hào)圖


TI1為輸入PWM波信號(hào)波形,TIMx_CNT為計(jì)數(shù)器計(jì)數(shù)值,當(dāng)?shù)谝粋€(gè)下降沿信號(hào)到來,IC2會(huì)先進(jìn)行捕獲,然后到下一個(gè)上升沿到來,IC1進(jìn)行捕獲!在捕獲的同時(shí),IC1和IC2會(huì)吧CNT的值映射到對(duì)應(yīng)的CCR1、CCR2的寄存器里面,這個(gè)值就是我們需要的計(jì)數(shù)值!


那么我們所需測量的周期就是IC1捕獲的值,脈沖寬度即為IC2測量的值了!


可是,這里有個(gè)bug,不注意的人,很容易犯錯(cuò)!我們的CCRx寄存器是一個(gè)16bit的寄存器計(jì)數(shù)范圍為0~0xffff,即0~65535,可是當(dāng)測量的矩形波周期太長,脈沖寬度太寬,二我們的計(jì)數(shù)又太快,很容易出現(xiàn)CCRx溢出現(xiàn)象,所以,我們在測量低頻信號(hào)時(shí),一定要對(duì)TIM的時(shí)鐘進(jìn)行分頻,這樣我們的計(jì)數(shù)就不會(huì)那么快了,也不會(huì)產(chǎn)生溢出現(xiàn)象,當(dāng)我們計(jì)數(shù)計(jì)完了,再把分頻所導(dǎo)致的結(jié)果進(jìn)行倍頻就OK了。


還有個(gè)地方,可能你只按照我上面說的進(jìn)行做,你會(huì)發(fā)現(xiàn)他總是跟實(shí)際的頻率,或者周期差那么一點(diǎn)點(diǎn)!其實(shí)這是有來由的!下面看看圖3:

圖3 注意點(diǎn)


根據(jù)圖3,我們可以看出他在開始計(jì)數(shù)的過程中會(huì)差那么三個(gè)時(shí)鐘,所以我們要在數(shù)值上進(jìn)行補(bǔ)齊!也就這么多!下面附上代碼:


void inpwm_init(void)

{

TIM_ICInitTypeDef  TIM_ICInitStructure;

  /* TIM3 clock enable */

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

 

  /* GPIOA clock enable */

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

 

  /* NVIC configuration */

  NVIC_Configuration();

 

  /* Configure the GPIO ports */

  GPIO_Configuration();

 

  /* TIM3 configuration: PWM Input mode ------------------------

     The external signal is connected to TIM3 CH2 pin (PA.07), 

     The Rising edge is used as active edge,

     The TIM3 CCR2 is used to compute the frequency value 

     The TIM3 CCR1 is used to compute the duty cycle value

  ------------------------------------------------------------ */

 

  TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;

  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;

  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;

  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;

  TIM_ICInitStructure.TIM_ICFilter = 0x0;

 

  TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);

 

  /* Select the TIM3 Input Trigger: TI2FP2 */

  TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1);

 

  /* Select the slave Mode: Reset Mode */

  TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);

 

  /* Enable the Master/Slave Mode */

  TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);

 

  /* TIM enable counter */

  TIM_Cmd(TIM3, ENABLE);

 

  /* Enable the CC2 Interrupt Request */

  TIM_ITConfig(TIM3, TIM_IT_CC2|TIM_IT_CC1, ENABLE);

}


void TIM3_IRQHandler(void)

{

if(TIM_GetFlagStatus(TIM3,TIM_FLAG_CC1) == SET)

{

DutyCycle = TIM_GetCapture1(TIM3)+3;

Frequency = 72000000 / DutyCycle;

TIM_ClearFlag(TIM3,TIM_FLAG_CC1);

}

if(TIM_GetFlagStatus(TIM3,TIM_FLAG_CC2) == SET)

{

IC2Value = TIM_GetCapture2(TIM3)+4;

TIM_ClearFlag(TIM3,TIM_FLAG_CC2);

}

}

圖4 實(shí)際波形

圖5 測量結(jié)果

關(guān)鍵字:STM庫  stm32  TIM  脈沖寬度  周期測量 引用地址:【STM庫應(yīng)用】stm32 之 TIM (詳解二 脈沖寬度、周期測量)

上一篇:【菜鳥入門】stm32的第一個(gè)程序--LED
下一篇:【STM庫應(yīng)用】stm32 之 IIC應(yīng)用

推薦閱讀

? ?Google宣布將于5月7-10日舉辦新一屆I/O 2018開發(fā)者大會(huì),而按照慣例,屆時(shí)我們將看到新一代Android P,不出意外會(huì)命名為安卓9.0。  有開發(fā)者從Google提交到AOSP開源項(xiàng)目的代碼里發(fā)現(xiàn),Google正在致力于將虹膜識(shí)別技術(shù)集成到安卓系統(tǒng)中,極有可能會(huì)在安卓9.0上實(shí)現(xiàn)。  代碼顯示,Google計(jì)劃通過HAL(硬件抽象層)接口讓安卓原生支持虹膜識(shí)別,...
2019年,外媒《The Robot Report》提出了機(jī)器人行業(yè)急需解決的問題,那就是云機(jī)器人開發(fā)平臺(tái),可以允許代碼共享、建立統(tǒng)一標(biāo)準(zhǔn)、大規(guī)模模擬同時(shí)還可以對(duì)接機(jī)器人設(shè)備。而這樣的兼容層將會(huì)大大推動(dòng)機(jī)器人行業(yè)的發(fā)展。 需要確立業(yè)界標(biāo)準(zhǔn) 智能機(jī)器人還沒有到來的主要問題是和硬件方面都缺乏標(biāo)準(zhǔn)。 機(jī)器人技術(shù)剛剛興起,大部分零件都必須定制,每個(gè)機(jī)...
2月28日10時(shí),1000千伏蒙西—晉中特高壓交流工程山西段7標(biāo)段施工現(xiàn)場,施工人員開挖5R059基礎(chǔ),1000千伏蒙西—晉中特高壓交流工程山西段復(fù)工。 1000千伏蒙西—晉中特高壓交流工程是山西省內(nèi)首個(gè)正式復(fù)工的特高壓工程。國網(wǎng)山西省電力公司嚴(yán)格落實(shí)國家電網(wǎng)有限公司要求,科學(xué)指導(dǎo),統(tǒng)籌安排,在各地市公司和參建單位的配合下,克服困難,同時(shí)做好防疫和...
前市場流行的3.5寸屏基本上都是只內(nèi)置了驅(qū)動(dòng)器,而不帶控制器,這樣給用戶的使用造成了一些難度。基本上很多朋友在用彩屏?xí)r選擇一些帶LCD控制器的ARM7或ARM9去開發(fā),對(duì)于不會(huì)ARM開發(fā)的朋友來說,只使用普通MCU,這樣可以選擇的3.5寸TFT模塊,就很難找到了。本文就是基于市場上一款比較使用的3.5寸TFT模塊編寫的,用戶只需要幫該TFT模塊當(dāng)作普通的單色液晶...

史海拾趣

問答坊 | AI 解惑

TI 公司DSP產(chǎn)品相關(guān)FAQ整理

問:請TI公司的DSP技術(shù)專家GeorgeShen先生和AccountManager王劍先生做一下自我介紹。(10:36:50 AM)答:大家好,這里是TI公司的盛戎華、王剣,很高興和大家一起討論TI的DSP產(chǎn)品。 Good morning! Hello this is George Sheng, an Field Application Eng ...…

查看全部問答∨

貼片元器件(密引腳IC)焊接教程

貼片元器件(密引腳IC)焊接教程…

查看全部問答∨

未定義指令異常 44b0

我的程序出現(xiàn)了未定義指令異常。在svc和irq下面的r14,我查看lr的地址屬于在c語言里面,我一直調(diào)用的兩個(gè)函數(shù),這兩個(gè)函數(shù)每次運(yùn)行,至少能運(yùn)行幾十萬次。是什么原因造成了未定義指令異常呢??? 另外,我原來程序初始化的時(shí)候,將svc的sp指向0x0 ...…

查看全部問答∨

首次發(fā)帖---國內(nèi)最詳細(xì)的linux基礎(chǔ)教程(不過是第一版)---網(wǎng)域時(shí)代的教程

確實(shí)詳細(xì),只是版本有點(diǎn)老,貢獻(xiàn)一下,供參考。 點(diǎn)擊此處下載 或粘帖:http://download.eeworld.net/source/2251570…

查看全部問答∨

WIN CE下瀏覽器問題

在WIN CE 下寫一個(gè)瀏覽器,目的是想獲得其HTML文檔的內(nèi)容。 我用CreateControl()在對(duì)話框中添加了一個(gè)WebBrowser控件, 并通過get_Document()獲得一個(gè)接口,再Q(mào)ueryInterface(), 想得到IHTMLDocument2的接口,結(jié)果錯(cuò)誤,GetLateError為6。 為6 ...…

查看全部問答∨

ACS Motion Control for Solar Panel Scribing, Test & Measurement

本帖最后由 dontium 于 2015-1-23 13:37 編輯 Providing fully coordinated multi-axis motion control with fast move and settle times for large mass gantry systems, ACS Motion Control, an international manufacturer of advanced multi ...…

查看全部問答∨

LM3S8962ADC之顯示芯片內(nèi)部溫度

這幾天在研究LM8962的ADC,看到一個(gè)網(wǎng)友發(fā)的開發(fā)板OLED顯示芯片內(nèi)部溫度的例程,挺不錯(cuò)的,發(fā)給大家共享。同時(shí)附上周立功的LM3S8962ADC的文檔   [ 本帖最后由 beyondvv 于 2010-12-15 23:04 編輯 ]…

查看全部問答∨

啥時(shí)STM32也能生個(gè)I2S口?

啥時(shí)STM32也能生個(gè)I2S口? AT ARM, NXP 的,全有.  好東東,用不上啊.…

查看全部問答∨

Java開發(fā)21世紀(jì)劃時(shí)代的變革

Java是全球最主流與應(yīng)用最廣泛的開發(fā)語言,其跨平臺(tái)的技術(shù)優(yōu)勢為網(wǎng)絡(luò)計(jì)算帶來了劃時(shí)代的變革,從一種編程語言發(fā)展成為全球第一大領(lǐng)先開發(fā)平臺(tái),Java在中國也已成為最廣泛使用的編程語言。Java技術(shù)目前已經(jīng)普遍應(yīng)用于電信、電力、保險(xiǎn)、證券、政府及 ...…

查看全部問答∨
小廣播
設(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
主站蜘蛛池模板: 杂多县| 右玉县| 福清市| 沂水县| 南昌县| 来凤县| 桃园县| 麻城市| 大连市| 南溪县| 松阳县| 昭通市| 嫩江县| 武鸣县| 观塘区| 宁化县| 广宁县| 广河县| 宁武县| 云霄县| 仲巴县| 武清区| 尚志市| 洪江市| 万山特区| 平罗县| 凉城县| 舟山市| 湘乡市| 雅安市| 余庆县| 洱源县| 思南县| 登封市| 通许县| 洪泽县| 柳河县| 偏关县| 甘肃省| 彭州市| 三门峡市|