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

簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法

這篇具有很好參考價(jià)值的文章主要介紹了簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

申明以下都是個(gè)人理解,僅供參考。如果錯(cuò)誤歡迎指教。本文不講底層,根據(jù)實(shí)際使用來(lái)逆向講解。

1.什么是pwm?

pwm最簡(jiǎn)單的理解就是“功率”,調(diào)節(jié)PWM的占空比就是調(diào)節(jié)功率。

2.如何調(diào)節(jié)占空比?

簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法

圖1?

?根據(jù)圖1很容易看出來(lái)調(diào)節(jié)CCRX的值就可以調(diào)節(jié)占空比,CCRX的值越大,占空比越大(在不超過(guò)ARR時(shí))。

在默認(rèn)有效值為高電平的時(shí),當(dāng)CCRX的值等于ARR時(shí)PWM的波形為一條直線(即全是邏輯電平1)全功率輸出。

3.什么是有效值,什么是CCRX,什么是ARR,什么是占空比?

先貼一段代碼:

void TIM2_PWM_Init(u16 arr,u16 psc)
{  
	GPIO_InitTypeDef 		    GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  	TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  	        TIM_OCInitStructure;
	
    
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2| RCC_APB1Periph_TIM3, ENABLE);	 //使能定時(shí)器2/3時(shí)鐘
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  	 //使能GPIO外設(shè)時(shí)鐘
	
 
        //引腳功能配置
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1| GPIO_Pin_2; //TIM2_CH1  // TIM2_CH2 // TIM3_CH1
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          //復(fù)用推挽輸出!!
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);


        //初始化TIM2
	TIM_TimeBaseStructure.TIM_Period = arr;                     //設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值
	TIM_TimeBaseStructure.TIM_Prescaler =psc;                   //設(shè)置用來(lái)作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值 
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;     //設(shè)置時(shí)鐘分頻系數(shù):不分頻  //設(shè)置時(shí)鐘分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計(jì)數(shù)模式
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);             //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位

	
	//初始化TIM2 Channel1、Channel2 PWM模式	 
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;           //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
 	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;   //輸出極性:TIM輸出比較極性高
	TIM_OCInitStructure.TIM_Pulse = 0;	  //跳變值
	TIM_OC1Init(TIM2, &TIM_OCInitStructure);                    //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC1  通道1
	TIM_OC2Init(TIM2, &TIM_OCInitStructure);                    //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC2  通道2
	TIM_OC3Init(TIM2, &TIM_OCInitStructure);                    //根據(jù)T指定的參數(shù)初始化外設(shè)TIM2 OC2  通道3
	
 
	TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的預(yù)裝載寄存器
	TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的預(yù)裝載寄存器
	TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的預(yù)裝載寄存器
    TIM_ARRPreloadConfig(TIM2, ENABLE);			 // 使能TIM2重載寄存器ARR
	TIM_Cmd(TIM2, ENABLE);  //使能TIM2
	

}

 TIM_SetCompare2(TIM3,400);	


void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2)
{
  /* Check the parameters */
  assert_param(IS_TIM_LIST6_PERIPH(TIMx));
  /* Set the Capture Compare2 Register value */
  TIMx->CCR2 = Compare2;
}

CCRX:就是設(shè)置定時(shí)器的比較值,

ARR:自動(dòng)重裝載寄存器周期的值

PWM占空比=CCRX/ARR或者是WM占空比=(ARR-CCRX)/ARR

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; ? //輸出極性:TIM輸出比較極性高

這句話就是用來(lái)設(shè)置有效值。

TIM脈沖寬度調(diào)制模式有兩種(看別人總結(jié)的):

PWM1:TIMx_CNT<TIMx_CCRX,輸出高電平(有效值默認(rèn)為高),否則輸出低電平。

PWM2:TIMx_CNT>TIMx_CCRX,輸出高電平(有效值默認(rèn)為高),否則輸出低電平。

如圖分析,即在t0-t1,t2-t3,t4-t5時(shí)間段輸出高電平.

4.PWM輸出頻率

PWM輸出頻率=時(shí)鐘頻率/(ARR+1)*(PSC+1)

5.keil軟件仿真波形輸出

選擇完模式,設(shè)置有效電平,設(shè)置CCRX,ARR就可以開(kāi)始使用PWM了。

下圖是軟件仿真輸出波形配置。

簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法

圖2?

配置圖片如下,GPIOX_DIR.X 例如本例程使用的PA0則寫為GPIOA_DIR.0。還有Display Type要選擇為Bit。

簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法

圖3?

?下圖為PA0 PA1的波形。PA0,PA1分別為定時(shí)器2的通道1,通道2.如果顯示no signel,參考軟件仿真輸出波形配置(圖2)。

簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法

圖4?

?上圖波形是PWM1模式下生成的。

最后附上源碼,有需要測(cè)試的可以下載?

鏈接:https://pan.baidu.com/s/1S6e3zdv62SktAtIjBtD5DA?
提取碼:7n7b文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-416373.html

到了這里,關(guān)于簡(jiǎn)單明了的說(shuō)明STM32的PWM原理以及實(shí)現(xiàn)方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • STM32pwm 時(shí)鐘 配置 周期 頻率 關(guān)系配置原理

    STM32pwm 時(shí)鐘 配置 周期 頻率 關(guān)系配置原理

    PWM(脈沖寬度調(diào)制)是一種常用的電子信號(hào)調(diào)制技術(shù),用于控制電子設(shè)備中的電平和電流。它通過(guò)調(diào)整脈沖的寬度來(lái)控制信號(hào)的平均功率。 在PWM信號(hào)中,一個(gè)周期由一個(gè)固定的頻率確定,稱為PWM頻率。每個(gè)周期內(nèi),脈沖的高電平時(shí)間稱為占空比,表示高電平時(shí)間與周期時(shí)間的

    2024年02月09日
    瀏覽(15)
  • 【正點(diǎn)原子STM32】DAC數(shù)模轉(zhuǎn)換器(DAC特性、DAC工作原理、DAC輸出實(shí)驗(yàn)配置步驟、DAC輸出三角波實(shí)驗(yàn)、DAC輸出正弦波實(shí)驗(yàn)配置步驟、PWM + RC濾波器、PWM DAC技術(shù)實(shí)現(xiàn)原理)

    【正點(diǎn)原子STM32】DAC數(shù)模轉(zhuǎn)換器(DAC特性、DAC工作原理、DAC輸出實(shí)驗(yàn)配置步驟、DAC輸出三角波實(shí)驗(yàn)、DAC輸出正弦波實(shí)驗(yàn)配置步驟、PWM + RC濾波器、PWM DAC技術(shù)實(shí)現(xiàn)原理)

    一、DAC簡(jiǎn)介 1.1、什么是DAC? 1.2、DAC的特性參數(shù) 1.3、STM32各系列DAC的主要特性 二、DAC工作原理 2.1、DAC框圖簡(jiǎn)介(F1/ F4 /F7/H7) 2.2、參考電壓/模擬部分電壓 2.3、DAC數(shù)據(jù)格式 2.4、觸發(fā)源 2.5、DMA請(qǐng)求 2.6、DAC輸出電壓 三、DAC輸出實(shí)驗(yàn) 3.1、實(shí)驗(yàn)簡(jiǎn)要 3.2、DAC寄存器介紹 3.3、DAC輸出實(shí)

    2024年04月16日
    瀏覽(35)
  • STM32(7)-定時(shí)器輸出PWM的原理分析

    STM32(7)-定時(shí)器輸出PWM的原理分析

    概念+代碼 OC(Output Compare)輸出比較 輸出比較可以通過(guò)比較CNT與CCR寄存器值的關(guān)系,來(lái)對(duì)輸出電平進(jìn)行置1、置0或翻轉(zhuǎn)的操作,用于輸出一定頻率和占空比的PWM波形 每個(gè)高級(jí)定時(shí)器和通用定時(shí)器都擁有4個(gè)輸出比較通道 高級(jí)定時(shí)器的前3個(gè)通道額外擁有死區(qū)生成和互補(bǔ)輸出的功

    2024年02月04日
    瀏覽(20)
  • STM32——高級(jí)定時(shí)器輸出指定個(gè)數(shù)PWM波原理及實(shí)戰(zhàn)

    STM32——高級(jí)定時(shí)器輸出指定個(gè)數(shù)PWM波原理及實(shí)戰(zhàn)

    相比于通用定時(shí)器特性: 1)重復(fù)計(jì)數(shù)器 2)死區(qū)時(shí)間帶可編程的互補(bǔ)輸出 3)斷路輸入,用于將定時(shí)器的輸出信號(hào)置于用戶可選的安全配置中 1,配置定時(shí)器基礎(chǔ)工作參數(shù) HAL_TIM_PWM_Init() 2,定時(shí)器PWM輸出MSP初始化 HAL_TIM_PWM_MspInit() 配置NVIC、CLOCK、GPIO等 3,配置PWM模式/比較值等

    2024年01月16日
    瀏覽(21)
  • stm32 筆記 PWM輸入模式測(cè)量脈寬和占空比原理

    stm32 筆記 PWM輸入模式測(cè)量脈寬和占空比原理

    在測(cè)量占空比之前,我們先一步一步來(lái),先讓 STM32 可以測(cè)量脈寬。 TIM3_CH1(tim3 定時(shí)器通道 1)捕獲模式測(cè)量脈寬步驟如下: 1.輸入捕獲到 PWM 上升沿觸發(fā) 2.發(fā)送中斷,通知用戶此時(shí)被觸發(fā),用戶獲得當(dāng)前計(jì)數(shù)器值 3.計(jì)數(shù)器清零,然后繼續(xù)計(jì)數(shù)... 讓 STM32 芯片一直重復(fù)這三步即

    2024年01月15日
    瀏覽(18)
  • 步進(jìn)電機(jī)簡(jiǎn)單使用:STM32 PWM輸出固定數(shù)目的脈沖數(shù)(基于CubeMX)

    步進(jìn)電機(jī)簡(jiǎn)單使用:STM32 PWM輸出固定數(shù)目的脈沖數(shù)(基于CubeMX)

    使用步進(jìn)電機(jī)之前,我們需要了解步距角的概念:步進(jìn)電機(jī)接收到一個(gè)脈沖轉(zhuǎn)動(dòng)的角度,步進(jìn)電機(jī)步距角通常 為1.8°,即步進(jìn)電機(jī)接收到一個(gè)脈沖轉(zhuǎn)動(dòng)1.8°,則若步進(jìn)電機(jī)接收到360°/1.8°=200個(gè)脈沖,步進(jìn)電機(jī)就能轉(zhuǎn)動(dòng)一圈 步進(jìn)電機(jī)通過(guò)驅(qū)動(dòng)器控制,驅(qū)動(dòng)器如下圖所示(都比較

    2024年02月06日
    瀏覽(53)
  • STM32精準(zhǔn)脈沖數(shù)PWM生成方法解答

    STM32精準(zhǔn)脈沖數(shù)PWM生成方法解答

    本文介紹了在STM32上生成精準(zhǔn)脈沖數(shù)PWM的方法,包括使用定時(shí)器中斷法和兩個(gè)定時(shí)器結(jié)合產(chǎn)生PWM脈沖的方法。詳細(xì)討論了定時(shí)器的配置和工作原理,以及如何通過(guò)定時(shí)器控制脈沖的個(gè)數(shù)和周期。通過(guò)示例代碼和硬件仿真,展示了如何實(shí)現(xiàn)精準(zhǔn)的脈沖數(shù)PWM輸出。

    2024年02月03日
    瀏覽(23)
  • STM32產(chǎn)生PWM實(shí)現(xiàn)正弦輸出

    STM32產(chǎn)生PWM實(shí)現(xiàn)正弦輸出

    本文使用 STM32-G070RB的定時(shí)器TIM1產(chǎn)生PWM波,并外接一階低通濾波器,實(shí)現(xiàn)DAC效果,最終在示波器上顯示正弦輸出。主要分為兩步:實(shí)現(xiàn) PWM 輸出,實(shí)現(xiàn)DAC功能。 實(shí)驗(yàn)用具 STM32-G070RB STM32CubeMX STM32CubeIDE PWM輸出正弦波原理 1 個(gè) PWM 波形假設(shè)為 500Hz(目標(biāo)定時(shí)器頻率) ,等效正弦波

    2024年02月06日
    瀏覽(17)
  • 深入理解 STM32 串口空閑中斷的工作原理與實(shí)現(xiàn)方法

    STM32 微控制器的串口空閑中斷是一種重要的通信機(jī)制,用于處理數(shù)據(jù)接收方面的任務(wù)。 本文深入解析了 STM32 串口空閑中斷的工作原理,包括觸發(fā)條件和中斷服務(wù)函數(shù)的實(shí)現(xiàn)方法,并給出了相應(yīng)的代碼示例。 STM32 微控制器的串口通信是嵌入式系統(tǒng)中常見(jiàn)的通信方式之一。為了

    2024年02月01日
    瀏覽(38)
  • STM32使用PWM實(shí)現(xiàn)led亮度變化

    STM32使用PWM實(shí)現(xiàn)led亮度變化

    這里我以stm32F103c8te為例,講解一下pwm如何輸出, pwm又是如何控制led燈的亮度變化,以及具體代碼又是 如何是實(shí)現(xiàn)的。最后結(jié)語(yǔ)中也給出了一個(gè)小練習(xí)。 首先我們搞清楚一個(gè)概念什么是頻率。比如我們stm32F103的系統(tǒng)頻率是72M 就是指1秒鐘能產(chǎn)生的72M的脈沖(高電平或者低電平

    2024年02月09日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包