国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32學(xué)習(xí)筆記(4) 高級定時(shí)器-兩路互補(bǔ)的PWM輸出(帶死區(qū)和剎車控制)

這篇具有很好參考價(jià)值的文章主要介紹了STM32學(xué)習(xí)筆記(4) 高級定時(shí)器-兩路互補(bǔ)的PWM輸出(帶死區(qū)和剎車控制)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1.實(shí)驗(yàn)?zāi)康?/p>

2.實(shí)驗(yàn)效果

3.理論部分

3.1時(shí)鐘源

3.2時(shí)基單元

3.3輸入捕獲

4.程序流程

4.1GPIO初始化結(jié)構(gòu)體

4.2時(shí)基初始化結(jié)構(gòu)體

4.3輸出比較結(jié)構(gòu)體

4.4剎車和死區(qū)結(jié)構(gòu)體的初始化

5.程序源碼


1.實(shí)驗(yàn)?zāi)康?/h2>

使用高級定時(shí)器,輸出兩路互補(bǔ)的PWM輸出,需要有帶死區(qū)和不帶死區(qū)兩種情況

2.實(shí)驗(yàn)效果

高級定時(shí)器輸出pwm,STM32,stm32,單片機(jī),arm,嵌入式硬件

圖1:不帶死區(qū)的兩路互補(bǔ)的PWM輸出

高級定時(shí)器輸出pwm,STM32,stm32,單片機(jī),arm,嵌入式硬件

圖2 :帶死區(qū)的兩路互補(bǔ)的PWM輸出

3.理論部分

3.1時(shí)鐘源

內(nèi)部時(shí)鐘(基本定時(shí)器,通用定時(shí)器時(shí)鐘源來自PCLK1,但高級定時(shí)器的時(shí)鐘源來自PCLK2(72M))

高級定時(shí)器輸出pwm,STM32,stm32,單片機(jī),arm,嵌入式硬件

實(shí)踐中幾乎無需使用:外部時(shí)鐘模式1、外部時(shí)鐘模式2

3.2時(shí)基單元

組成:

  • 16bit預(yù)分頻PSC

16bit計(jì)數(shù)器CNT

8bit重復(fù)計(jì)數(shù)器RCR(高級定時(shí)器獨(dú)有)

16bit自動(dòng)重裝載寄存器ARR

3.3輸入捕獲

作用:對輸入信號的上升沿/下降沿/雙邊沿進(jìn)行捕獲,測量輸入信號的脈寬,和測量PWM的頻率,占空比
原理:當(dāng)捕捉到信號的跳變沿時(shí),將CNT的值所存到捕獲寄存器CCR中,然后把兩次的值相減,就可以得到脈寬或者頻率。
若脈寬時(shí)長超過你定時(shí)的時(shí)長,那么就溢出,此時(shí)我們就需要作額外的處理

PWM輸入的情況下,只有CH1,CH2可以同時(shí)測量周期和占空比,因?yàn)橹挥蠺I1FP1,TI2FP2可以觸發(fā)從模式控制器。選誰作從模式控制器的觸發(fā)測量的就是周期,剩下的一個(gè)寄存器就測量占空比。但是單純測量PWM的一個(gè)周期或占空比,可用四路

高級定時(shí)器輸出pwm,STM32,stm32,單片機(jī),arm,嵌入式硬件

4.程序流程

4.1GPIO初始化結(jié)構(gòu)體

高級定時(shí)器輸出pwm,STM32,stm32,單片機(jī),arm,嵌入式硬件

輸出PWM需用復(fù)用推挽輸出(GPIO_AF_PP

   1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1
   2、帶上拉輸入GPIO_IPU——IO內(nèi)部上拉電阻輸入
   3、帶下拉輸入GPIO_IPD—— IO內(nèi)部下拉電阻輸入
   4、模擬輸入GPIO_AIN ——應(yīng)用ADC模擬輸入,或者低功耗下省電
   5、開漏輸出GPIO_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實(shí)現(xiàn)輸出高電平。
   當(dāng)輸出為1時(shí),IO口的狀態(tài)由上拉電阻拉高電平,但由于是開漏輸出模式,這樣IO口也就可以由外部電路改變?yōu)?   低電平或不變。可以讀IO輸入電平變化,實(shí)現(xiàn)C51的IO雙向功能
   6、推挽輸出GPIO_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
   7、復(fù)用功能的推挽輸出GPIO_AF_PP ——片內(nèi)外設(shè)功能(I2C的SCL,SDA)
   8、復(fù)用功能的開漏輸出GPIO_AF_OD——片內(nèi)外設(shè)功能(TX1,MOSI,MISO.SCK.SS)

4.2時(shí)基初始化結(jié)構(gòu)體

高級定時(shí)器輸出pwm,STM32,stm32,單片機(jī),arm,嵌入式硬件

typedef struct
{
  uint16_t TIM_Prescaler;         //預(yù)分頻器
  uint16_t TIM_CounterMode;       //定時(shí)器的計(jì)數(shù)方式
  uint16_t TIM_Period;            //定時(shí)器的周期
  uint16_t TIM_ClockDivision;     //時(shí)鐘分頻因子
  uint8_t TIM_RepetitionCounter;  //配置重復(fù)計(jì)數(shù)器,僅高級定時(shí)器需要
} TIM_TimeBaseInitTypeDef; 

?定時(shí)器的計(jì)數(shù)方式

向上計(jì)數(shù)(基本定時(shí)器僅有這一種)、向下計(jì)數(shù)、中心對齊計(jì)數(shù)

DIR=0,向上計(jì)數(shù)

DIR=1,向下計(jì)數(shù)

配置中心對齊需CMS和DIR寄存器配合使用

4.3輸出比較結(jié)構(gòu)體

typedef struct
{
  uint16_t TIM_OCMode;        //比較輸出模式選擇
  uint16_t TIM_OutputState;   //比較輸出使能
  uint16_t TIM_OutputNState;  //比較互補(bǔ)輸出使能
  uint16_t TIM_Pulse;         //脈沖寬度
  uint16_t TIM_OCPolarity;    //輸出極性
  uint16_t TIM_OCNPolarity;  //互補(bǔ)輸出極性
  uint16_t TIM_OCIdleState;   //空閑狀態(tài)下比較輸出狀態(tài)
  uint16_t TIM_OCNIdleState;  //空閑狀態(tài)下比較互補(bǔ)輸出狀態(tài)
} TIM_OCInitTypeDef;

1.比較輸出模式選擇,總共有八種,常用的為 PWM1/PWM2。它設(shè)定CCMRx 寄存器 OCxM[2:0]位的值。

2.比較輸出使能,決定最終的輸出比較信號 OCx 是否通過外部引腳輸出。它設(shè)定 TIMx_CCER 寄存器 CCxE/CCxNE 位的值。

3.TIM_OutputNState:比較互補(bǔ)輸出使能,決定 OCx 的互補(bǔ)信號 OCxN 是否通過外部引腳輸出。它設(shè)定 CCER 寄存器 CCxNE 位的值。

4.比較輸出脈沖寬度,實(shí)際設(shè)定比較寄存器 CCR 的值,決定脈沖寬度??稍O(shè)置范圍為 0 至 65535。設(shè)置脈沖即可設(shè)置占空比

5.比較輸出極性,可選 OCx 為高電平有效或低電平有效。它決定著定時(shí)器通道有效電平。它設(shè)定 CCER 寄存器的 CCxP 位的值。可設(shè)置占空比由高電平?jīng)Q定

6.比較互補(bǔ)輸出極性,可選 OCxN 為高電平有效或低電平有效。它設(shè)定 TIMx_CCER 寄存器的 CCxNP 位的值。

7.空閑狀態(tài)時(shí)通道輸出電平設(shè)置,可選輸出 1 或輸出 0,即在空閑狀態(tài)(BDTR_MOE 位為 0)時(shí),經(jīng)過死區(qū)時(shí)間后定時(shí)器通道輸出高電平或低電平。它設(shè)定CR2 寄存器的 OISx 位的值。

8.空閑狀態(tài)時(shí)互補(bǔ)通道輸出電平設(shè)置,可選輸出 1 或輸出 0,即在空閑狀態(tài)(BDTR_MOE 位為 0)時(shí),經(jīng)過死區(qū)時(shí)間后定時(shí)器互補(bǔ)通道輸出高電平或低電平,設(shè)定值必須與 TIM_OCIdleState 相反。它設(shè)定是 CR2 寄存器的 OISxN 位的值。

4.4剎車和死區(qū)結(jié)構(gòu)體的初始化

static void AdvancedTIM_BDTR_Init()
{
  TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
  
  TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable;//空閑模式下的關(guān)閉狀態(tài)選擇
  TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable;//運(yùn)行模式下的關(guān)閉狀態(tài)選擇
  TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_1;//鎖存配置

  TIM_BDTRInitStructure.TIM_DeadTime=11;//死區(qū)時(shí)間
  TIM_BDTRInitStructure.TIM_Break=TIM_Break_Enable;//斷路輸入使能控制

  TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_High;//斷路輸入極性
  TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Enable;//自動(dòng)輸出極性
  TIM_BDTRConfig(Advanced_TIM,&TIM_BDTRInitStructure);
}

死區(qū)時(shí)間的計(jì)算可以看看博客,講解的也是非常詳細(xì)的,對此不再贅述

這個(gè)結(jié)構(gòu)體,你只需關(guān)心 TIM_BDTRInitStructure.TIM_DeadTime=11 即可

5.程序源碼

高級定時(shí)器-兩路互補(bǔ)的PWM輸出(帶死區(qū)和剎車控制)文章來源地址http://www.zghlxwxcb.cn/news/detail-649602.html

到了這里,關(guān)于STM32學(xué)習(xí)筆記(4) 高級定時(shí)器-兩路互補(bǔ)的PWM輸出(帶死區(qū)和剎車控制)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 正點(diǎn)原子--STM32基本定時(shí)器學(xué)習(xí)筆記(1)

    正點(diǎn)原子--STM32基本定時(shí)器學(xué)習(xí)筆記(1)

    目錄 1. 定時(shí)器概述 1.1 軟件定時(shí)原理 1.2 定時(shí)器定時(shí)原理 1.3 定時(shí)器分類 1.4 定時(shí)器特性表 1.5 基本、通用、高級定時(shí)器的功能整體區(qū)別 2. 基本定時(shí)器簡介 3. 基本定時(shí)器框圖 時(shí)鐘樹分析 這部分是筆者對基本定時(shí)器的理論知識進(jìn)行學(xué)習(xí)與總結(jié)!主要記錄學(xué)習(xí)過程中遇到的重難點(diǎn)

    2024年02月19日
    瀏覽(22)
  • 【STM32】學(xué)習(xí)筆記(TIM定時(shí)器)-江科大

    【STM32】學(xué)習(xí)筆記(TIM定時(shí)器)-江科大

    定時(shí)器可以對輸入的時(shí)鐘進(jìn)行計(jì)數(shù),并在計(jì)數(shù)值達(dá)到設(shè)定值時(shí)觸發(fā)中斷 16位計(jì)數(shù)器、預(yù)分頻器、自動(dòng)重裝寄存器的時(shí)基單元,在72MHz計(jì)數(shù)時(shí)鐘下可以實(shí)現(xiàn)最大59.65s的定時(shí) 不僅具備基本的定時(shí)中斷功能,而且還包含內(nèi)外時(shí)鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)

    2024年02月10日
    瀏覽(26)
  • 江科大stm32視頻學(xué)習(xí)筆記——TIM定時(shí)中斷&定時(shí)器外部時(shí)鐘

    江科大stm32視頻學(xué)習(xí)筆記——TIM定時(shí)中斷&定時(shí)器外部時(shí)鐘

    目錄 一、TIM(Timer)定時(shí)器簡介 ?1.1 定時(shí)器類型 摘要 1.1.1 基本定時(shí)器 1.1.2 通用定時(shí)器 1.1.3 高級定時(shí)器? 1.2 定時(shí)中斷基本結(jié)構(gòu) 1.2.1 結(jié)構(gòu)框圖 1.2.2 時(shí)序圖 二、定時(shí)器定時(shí)中斷定時(shí)器外部時(shí)鐘 2.1 內(nèi)部時(shí)鐘鬧鐘代碼 2.1.1 Timer.c 2.1.2 Buzzer.c加入間隔發(fā)聲函數(shù) 2.1.3 main.c 2.1.4 實(shí)驗(yàn)視頻

    2024年01月23日
    瀏覽(55)
  • STM32 MCU 定時(shí)器詳解(3)--高級定時(shí)器

    STM32 MCU 定時(shí)器詳解(3)--高級定時(shí)器

    16位遞增、遞減、中心對齊計(jì)數(shù)器(計(jì)數(shù)值:0~65535) 16位預(yù)分頻器(分頻系數(shù):1~65536) 可用于觸發(fā)DAC、ADC 在更新事件、觸發(fā)事件、輸入捕獲、輸出比較時(shí),會(huì)產(chǎn)生中斷/DMA請求 4個(gè)獨(dú)立通道,可用于:輸入捕獲、輸出比較、輸出PWM、單脈沖模式 使用外部信號控制定時(shí)器且可實(shí)

    2024年04月17日
    瀏覽(28)
  • STM32高級定時(shí)器詳解

    STM32高級定時(shí)器詳解

    ?作者簡介:嵌入式入坑者,與大家一起加油,希望文章能夠幫助各位?。。?! ??個(gè)人主頁:@rivencode的個(gè)人主頁 ??系列專欄:玩轉(zhuǎn)STM32 ??保持學(xué)習(xí)、保持熱愛、認(rèn)真分享、一起進(jìn)步?。?基本定時(shí)器TIM6和TIM7各包含 一個(gè)16位自動(dòng)裝載計(jì)數(shù)器 ,由各自的可編程預(yù)分頻器驅(qū)動(dòng)。

    2024年01月19日
    瀏覽(20)
  • keysking 【stm32】hal庫學(xué)習(xí)筆記--定時(shí)器(超詳細(xì)?。? decoding=

    keysking 【stm32】hal庫學(xué)習(xí)筆記--定時(shí)器(超詳細(xì)!)

    任務(wù)一:串口發(fā)送計(jì)數(shù)器的值 1.打開串口2及其中斷,用于發(fā)送數(shù)據(jù) 2.將高速外部時(shí)鐘源設(shè)置為晶振,提高定時(shí)精度 3.將HCLK改為72MHz 4.開啟定時(shí)器 TIM4–勾選 Internal Clock(內(nèi)部時(shí)鐘)/ TIM2–將Clock Source選擇為Internal Clock 5.設(shè)置預(yù)分頻器 Prescaler–n(想要實(shí)現(xiàn)的分頻)-1 Counter Perio

    2024年02月02日
    瀏覽(37)
  • STM32F103學(xué)習(xí)筆記(5.1)——定時(shí)器時(shí)鐘

    STM32F103學(xué)習(xí)筆記(5.1)——定時(shí)器時(shí)鐘

    STM32F103RCT6上總共有8個(gè)定時(shí)器,其中TIM1和TIM8是高級定時(shí)器,它們掛載在APB2高速總線上。而TIM2、TIM3、TIM4、TIM5是通用定時(shí)器,TIM6、TIM7是基本定時(shí)器,它們都掛載在APB1上,基本定時(shí)器的功能最少,高級定時(shí)器功能最多。所以以學(xué)習(xí)通用定時(shí)器為主。 需要參考手冊第二章存儲(chǔ)器

    2024年02月15日
    瀏覽(28)
  • STM32中TIM定時(shí)器定時(shí)功能詳解(適用基本,通用,高級定時(shí)器)

    STM32中TIM定時(shí)器定時(shí)功能詳解(適用基本,通用,高級定時(shí)器)

    定時(shí)器有高級定時(shí)器、通用定時(shí)器、基本定時(shí)器三種類型。具體功能如下。 上面是每種定時(shí)器所具有的功能。 我們可以看到每種定時(shí)器都有一個(gè)定時(shí)功能,(可能是名字的由來吧)。當(dāng)然,每個(gè)定時(shí)器都可以來使用定時(shí)功能,但是我們往往在基本定時(shí)器和通用定時(shí)器上面使用

    2024年01月19日
    瀏覽(31)
  • STM32學(xué)習(xí)筆記(四)丨TIM定時(shí)器及其應(yīng)用(定時(shí)中斷、內(nèi)外時(shí)鐘源選擇)

    STM32學(xué)習(xí)筆記(四)丨TIM定時(shí)器及其應(yīng)用(定時(shí)中斷、內(nèi)外時(shí)鐘源選擇)

    ???本次課程采用單片機(jī)型號為STM32F103C8T6。 ???課程鏈接:江科大自化協(xié) STM32入門教程 ??往期筆記鏈接: ??STM32學(xué)習(xí)筆記(一)丨建立工程丨GPIO 通用輸入輸出 ??STM32學(xué)習(xí)筆記(二)丨STM32程序調(diào)試丨OLED的使用 ??STM32學(xué)習(xí)筆記(三)丨中斷系統(tǒng)丨EXTI外部中斷

    2023年04月13日
    瀏覽(21)
  • STM32 學(xué)習(xí)筆記(六)定時(shí)器中斷:內(nèi)部時(shí)鐘模式,外部時(shí)鐘模式

    STM32 學(xué)習(xí)筆記(六)定時(shí)器中斷:內(nèi)部時(shí)鐘模式,外部時(shí)鐘模式

    定時(shí)器是功能最強(qiáng)大,內(nèi)容最復(fù)雜的32結(jié)構(gòu)。 之前51用過的功能,定時(shí)產(chǎn)生中斷。 輸出比較,常用于產(chǎn)生 PWM 波形,驅(qū)動(dòng)電機(jī)等。 輸入捕獲,測量方波頻率。 編碼器,讀取正交編碼器的波形。 最大定時(shí)時(shí)間:72M/65536/65536=中斷頻率,中斷頻率取倒數(shù)是最大定時(shí)時(shí)間。 定時(shí)器可

    2024年02月08日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包