色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用定時器來捕獲PWM脈沖頻率

GReq_mcu168 ? 來源:未知 ? 作者:胡薇 ? 2018-07-10 11:05 ? 次閱讀

一、概念理解

PWM輸入捕獲模式是輸入捕獲模式的特例,自己理解如下:

1. 每個定時器有四個輸入捕獲通道IC1、IC2、IC3、IC4。且IC1 IC2一組,IC3 IC4一組。并且可是設置管腳和寄存器的對應關系。

2. 同一個TIx輸入映射了兩個ICx信號

3. 這兩個ICx信號分別在相反的極性邊沿有效。

4. 兩個邊沿信號中的一個被選為觸發信號,并且從模式控制器被設置成復位模式。

5. 當觸發信號來臨時,被設置成觸發輸入信號的捕獲寄存器,捕獲“一個PWM周期(即連續的兩個上升沿或下降沿)”,它等于包含TIM時鐘周期的個數(即捕獲寄存器中捕獲的為TIM的計數個數n)。

6. 同樣另一個捕獲通道捕獲觸發信號和下一個相反極性的邊沿信號的計數個數m,即(即高電平的周期或低電平的周期)

7. 由此可以計算出PWM的時鐘周期和占空比了

frequency=f(TIM時鐘頻率)/n。

duty cycle=(高電平計數個數/n),

若m為高電平計數個數,則duty cycle=m/n

若m為低電平計數個數,則duty cycle=(n-m)/n

注:因為計數器為16位,所以一個周期最多計數65535個,所以測得的 最小頻率= TIM時鐘頻率/65535。

二、程序設計與分析

1. 程序概述:選擇TIM3作為PWM輸入捕獲。IC2設置為上升沿,并設置為有效的觸發輸入信號。所以IC2的捕獲寄存器捕獲PWM周期,IC1的捕獲寄存器捕獲PWM的高電平周期。

2.程序代碼如下:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//時鐘配置

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//GPIO配置PIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;//NVIC配置NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);

TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;//通道選擇TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;//上升沿觸發TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//管腳與寄存器對應關系TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;//輸入預分頻。意思是控制在多少個輸入周期做一次捕獲,如果

//輸入的信號頻率沒有變,測得的周期也不會變。比如選擇4分頻,則每四個輸入周期才做一次捕獲,這樣在輸入信號變化不頻繁的情況下,

//可以減少軟件被不斷中斷的次數。TIM_ICInitStructure.TIM_ICFilter = 0x0;//濾波設置,經歷幾個周期跳變認定波形穩定0x0~0xF

TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);//根據參數配置TIM外設信息

TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2);//選擇IC2為始終觸發源

TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);//TIM從模式:觸發信號的上升沿重新初始化計數器和觸發寄存器的更新事件

TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); //啟動定時器的被動觸發

TIM_Cmd(TIM3, ENABLE);//啟動TIM2

TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE);//打開中斷

中斷處理函數

void TIM3_IRQHandler(void){TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);//清楚TIM的中斷待處理位

IC2Value = TIM_GetCapture2(TIM3);//讀取IC2捕獲寄存器的值,即為PWM周期的計數值

if (IC2Value != 0){ DutyCycle = (TIM_GetCapture1(TIM3) * 100) / IC2Value;//讀取IC1捕獲寄存器的值,并計算占空比

Frequency = 72000000 / IC2Value;//計算PWM頻率。}else{DutyCycle = 0;Frequency = 0;}}

注(一):若想改變測量的PWM頻率范圍,可將TIM時鐘頻率做分頻處理

TIM_TimeBaseStructure.TIM_Period = 0xFFFF;//周期0~FFFFTIM_TimeBaseStructure.TIM_Prescaler = 5;//時鐘分頻,分頻數為5+1即6分頻TIM_TimeBaseStructure.TIM_ClockDivision = 0;//時鐘分割TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//模式TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//基本初始化注注(二):定時器TIM的倍頻器X1或X2。在APB分頻為1時,倍頻值為1,否則為2。

筆記:之前調試的時候,想檢測低頻,按照上面方法進行分頻處理時,怎么都不行,后來才搞明白,由于檢測時要進行計數,印記預裝載值TIM_Period還是要設置成0xffff,而TIM_Prescaler是進行分頻用的,也就是說,如果定時器時鐘為72M,則將TIM_Prescaler設置成5后,TIM的時鐘為14.4M,此時可以檢測的最小頻率=14.4M/0xffff,也就是說最小檢測頻率=14.4M/TIM_Period。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5193

    瀏覽量

    214222
  • 定時器
    +關注

    關注

    23

    文章

    3251

    瀏覽量

    115009

原文標題:STM32小白必看!一招教你定時器捕獲PWM脈沖頻率

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32定時器的輸入捕獲模式測量脈沖寬度或者測量頻率

    概述在前面幾章中簡單的講解了定時器用作定時PWM輸出時的基本原理和配置,在這一章中講解定時器的另一種用法輸入捕獲是輸入
    發表于 01-06 08:02

    何用STM32的定時器輸入捕獲功能去測量方波的頻率

    測量頻率的原理是什么?如何用STM32的定時器輸入捕獲功能去測量方波的頻率呢?
    發表于 01-17 07:43

    M261芯片如何用定時器計數不同頻率的外部脈沖

    M261芯片,如何用定時器計數不同頻率的外部脈沖? 外部脈沖頻率是變化的,從幾HZ,~50K
    發表于 06-19 07:20

    stm32定時器輸入捕獲

    不同頻率、不同占空比的方波信號、PWM信號,同時做為輸入捕獲功能時,可以測量脈沖寬度、實現電容按鍵檢測等等。 一、輸入捕獲概念 輸入
    發表于 10-13 09:13 ?2.4w次閱讀
    stm32<b class='flag-5'>定時器</b>輸入<b class='flag-5'>捕獲</b>

    基于STM32定時器輸入捕獲解析

    輸入捕獲模式可以用來測量脈沖寬度或者測量頻率。STM32的定時器,除了TIM6和TIM7,其他定時器都有輸入
    發表于 09-04 11:00 ?6041次閱讀

    stm32 定時器 捕獲

    輸入捕獲模式可以用來測量脈沖寬度或者測量頻率。STM32的定時器,除了TIM6和TIM7,其他定時器都有輸入
    發表于 09-08 17:07 ?2410次閱讀

    關于定時器輸出的PWM頻率范圍及占空比精度

    定時器輸出的PWM頻率范圍及占空比精度
    的頭像 發表于 03-12 10:37 ?1.4w次閱讀

    基于STM32定時器捕獲測量脈寬的應用示例

    我們知道,利用單片機定時器捕獲功能測量脈沖信號寬度及占空比是種很常見的做法。這里以STM32的定時器為例介紹基于其
    的頭像 發表于 01-02 18:17 ?1.3w次閱讀
    基于STM32<b class='flag-5'>定時器</b><b class='flag-5'>捕獲</b>測量脈寬的應用示例

    STM32單片機一個定時器輸出不同頻率PWM

    ??在使用STM32單片機輸出PWM波形的時候,通常可以直接使用定時器提供的PWM模式。可以通過自動重裝載寄存(TIMx_ARR)設置
    發表于 11-23 18:21 ?18次下載
    STM32單片機一個<b class='flag-5'>定時器</b>輸出不同<b class='flag-5'>頻率</b><b class='flag-5'>PWM</b>波

    基于定時器捕獲測量脈寬的應用示例

    我們知道,利用單片機定時器捕獲功能測量脈沖信號寬度及占空比是種很常見的做法。這里以STM32的定時器為例介紹基于其
    發表于 11-26 16:36 ?9次下載
    基于<b class='flag-5'>定時器</b><b class='flag-5'>捕獲</b>測量脈寬的應用示例

    STM32F4單定時器獨立輸出四路PWM脈沖

    本文以STM32F405單片機為例,介紹如何用一個定時器的四個通道獨立地輸出四路PWM脈沖。主要使用定時器輸出比較的翻轉功能和
    發表于 11-30 10:06 ?28次下載
    STM32F4單<b class='flag-5'>定時器</b>獨立輸出四路<b class='flag-5'>PWM</b><b class='flag-5'>脈沖</b>

    STM32CubeMX——定時器輸入捕獲

    通用定時器在基本定時器的基礎上增加了一個外部引腳,可以實現輸入捕獲與輸出比較等功能。高級定時器TIM1與TIM8相比于通用定時器增加了電機控
    發表于 12-02 14:06 ?9次下載
    STM32CubeMX——<b class='flag-5'>定時器</b>輸入<b class='flag-5'>捕獲</b>

    通用定時器的輸入捕獲實驗

    文章目錄通用定時器的輸入捕獲實驗(寄存版本)1、作用2、過程3、圖解4、測試方法5、代碼通用定時器的輸入捕獲實驗(寄存
    發表于 01-12 19:53 ?9次下載
    通用<b class='flag-5'>定時器</b>的輸入<b class='flag-5'>捕獲</b>實驗

    如何使用555定時器產生PWM

    生成PWM ,那么我們更喜歡一些通用IC,如運算放大器,定時器脈沖發生等。這里我們使用 555定時器IC
    的頭像 發表于 01-25 15:09 ?8091次閱讀
    如何使用555<b class='flag-5'>定時器</b><b class='flag-5'>來</b>產生<b class='flag-5'>PWM</b>

    一個通道如何捕獲PWM頻率和占空比?

    一,前言正常情況是雙通道捕獲PWM波,這種方法簡單且準確,但是它占用的資源太多了,因為它使用定時器的兩個通道,且這兩個通道映射在一個通道上,同時配置一路捕獲為觸發
    的頭像 發表于 12-30 08:00 ?3272次閱讀
    一個通道如何<b class='flag-5'>捕獲</b><b class='flag-5'>PWM</b>的<b class='flag-5'>頻率</b>和占空比?
    主站蜘蛛池模板: jlzz中国jizz日本老师水多| 榴莲黄版无限刷| 国产精品国产三级国AV在线观看| 国产乱色伦影片在线观看| 久久re6热在线视频| 男女一边摸一边做羞羞的事情免费 | 亚洲熟伦熟女专区| 99亚洲精品色情无码久久| 国产精品涩涩涩视频网站 | 国产亚洲精品视频在线网| 美女脱精光让男生桶下面| 偷偷鲁青春草原视频分类| 诱咪视频免费| 国产成人高清精品免费观看| 辣文肉高h粗暴| 午夜国产精品视频在线| 97超级碰碰人妻中文字幕| 国产人人为我我为人人澡| 暖暖的高清视频在线观看免费中文| 亚洲2017久无码| 被黑人掹躁10次高潮| 久久草香蕉频线观| 睡觉被偷偷进入magnet| 92看看福利午夜影院| 国产又色又爽又刺激在线播放| 欧美内射深插日本少妇| 野花高清在线观看免费3中文| 成人小视频在线观看免费| 久久中文字幕人妻AV熟女| 性夜a爽黄爽| 成人在线高清不卡免费视频| 久久无码人妻AV精品一区| 性西欧俄罗斯极品| 赤兔CHINESE最新男18GUY | 娇妻玩4P被三个男人伺候电影| 青青草原国产在线观看| 在线观看中文字幕码2021不用下载| 国产精品久久久久久久久久影院 | 色戒无删减流畅完整版| 24小时日本在线电影| 好男人好资源在线播放|