0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的PWM實(shí)驗(yàn)

汽車電子技術(shù) ? 來源:玩轉(zhuǎn)單片機(jī) ? 作者:Julian ? 2023-02-10 14:55 ? 次閱讀

1、為啥要學(xué)PWM

PWM 是 Pulse Width Modulation 的縮寫,中文意思就是脈沖寬度調(diào)制,簡稱脈寬調(diào)制。它是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),其控制簡單、靈活和動(dòng)態(tài)響應(yīng)好等優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,其應(yīng)用領(lǐng)域包括測(cè)量,通信,功率控制與變換,電動(dòng)機(jī)控制、伺服控制、調(diào)光、開關(guān)電源,甚至某些音頻放大器,因此學(xué)習(xí) PWM 具有十分重要的現(xiàn)實(shí)意義。

STM32F1 除了基本定時(shí)器 TIM6 和 TIM7,其他定時(shí)器都可以產(chǎn)生 PWM 輸出。其中高級(jí)定時(shí)器 TIM1 和 TIM8 可以同時(shí)產(chǎn)生多達(dá) 7 路的 PWM 輸出。而通用定時(shí)器也能同時(shí)產(chǎn)生多達(dá) 4 路的 PWM 輸出。

2、通用定時(shí)器 PWM 輸出配置

#include "stm32f10x.h"


void TIM3_CH1_PWM_Init(u16 per,u16 psc)
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
  TIM_OCInitTypeDef TIM_OCInitStructure;
  GPIO_InitTypeDef GPIO_InitStructure;

  /* 開啟時(shí)鐘 */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//復(fù)用功能重映射就需要開啟 AFIO 時(shí)鐘

  /*  配置GPIO的模式和IO口 */
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出
  GPIO_Init(GPIOC,&GPIO_InitStructure);

  /*第一個(gè)參數(shù)是選擇是部分重映射還是完全重映射,因?yàn)橛成涞綗艚拥降腉PIO才能看到呼吸效果*/
  GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//改變指定管腳的映射

  TIM_TimeBaseInitStructure.TIM_Period=per;   //自動(dòng)裝載值
  TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //分頻系數(shù)
  TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;  //時(shí)鐘分頻
  TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //設(shè)置向上計(jì)數(shù)模式
  TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);  

  TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//比較輸出模式選擇
  TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;//輸出極性
  TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//比較輸出使能
  TIM_OC1Init(TIM3,&TIM_OCInitStructure); //輸出比較通道1初始化

  TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable); //使能TIMx在 CCR1 上的預(yù)裝載寄存器
  TIM_ARRPreloadConfig(TIM3,ENABLE);//使能預(yù)裝載寄存器

  TIM_Cmd(TIM3,ENABLE); //使能定時(shí)器

}


void delay_nms(u16 time)
{    
   u16 i=0;  
   while(time--)
   {
      i=12000;  //自己定義
      while(i--) ;    
   }
}


int main( void )
{
  u16 i=0;  
  u8 fx=0;


  TIM3_CH1_PWM_Init(500,72-1); //頻率是2Kh

  while(1)
  {
    if(fx==0)
    {
      i++;
      if(i==300)
      {
        fx=1;
      }
    }
    else
    {
      i--;
      if(i==0)
      {
        fx=0;
      }
    }
    /*修改 TIMx_CCRx 的值控制占空比*/
    TIM_SetCompare1(TIM3,i);  //i值最大可以取499,因?yàn)锳RR最大值是499.
    delay_nms(10);//延遲是為了人眼能看到呼吸效果
  }
}

3、測(cè)試驗(yàn)證,實(shí)測(cè)可以達(dá)到初步效果,實(shí)驗(yàn)完成,不同硬件環(huán)境需要自定義修改對(duì)應(yīng)的代碼,方可實(shí)現(xiàn)對(duì)應(yīng)效果。

--END--

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5186

    瀏覽量

    213956
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2263

    瀏覽量

    82457
  • 脈沖寬度調(diào)制
    +關(guān)注

    關(guān)注

    7

    文章

    81

    瀏覽量

    13727
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32 PWM驅(qū)動(dòng)舵機(jī)實(shí)驗(yàn)

    STM32 simulink驅(qū)動(dòng)舵機(jī)效果如圖5.1所示,本次實(shí)驗(yàn)用到的Simulink簡易模型如圖5.2所示,電路圖接法如圖5.3所示,YF-STM32-ALPHA開發(fā)板舵機(jī)接口位置如圖5.4所示
    的頭像 發(fā)表于 11-29 16:30 ?2919次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>PWM</b>驅(qū)動(dòng)舵機(jī)<b class='flag-5'>實(shí)驗(yàn)</b>

    轉(zhuǎn):基礎(chǔ)篇--STM32視頻 13.STM32 PWM輸出實(shí)驗(yàn)

    【眾想】大黃蜂STM32視頻教程 ----劉洋邊講邊寫基礎(chǔ)篇-- 13.STM32 PWM輸出實(shí)驗(yàn)http://www.stmcu.org/module/forum/thread-6
    發(fā)表于 07-14 16:56

    STM32_PWM實(shí)驗(yàn)

    STM32 PWM實(shí)驗(yàn),很好的學(xué)習(xí)資料,快來下載啊
    發(fā)表于 02-16 15:46 ?55次下載

    ALIENTEK_MINISTM32_實(shí)驗(yàn)8_PWM輸出實(shí)驗(yàn)

    ALIENTEK MINISTM32 實(shí)驗(yàn)8 PWM輸出實(shí)驗(yàn),很好的資料,快來學(xué)習(xí)吧
    發(fā)表于 02-18 14:57 ?15次下載

    pwm輸出實(shí)驗(yàn)

    基于STM32pwm輸出實(shí)驗(yàn),用DS0燈的亮度觀察pwm輸出的大小
    發(fā)表于 09-09 16:58 ?37次下載

    PWM輸出實(shí)驗(yàn)_標(biāo)準(zhǔn)例程

    stm32開發(fā)板,標(biāo)準(zhǔn)例程-寄存器版本,PWM輸出實(shí)驗(yàn)
    發(fā)表于 11-18 15:42 ?10次下載

    實(shí)驗(yàn)9 PWM輸出實(shí)驗(yàn)

    正點(diǎn)原子戰(zhàn)艦最新的PWM實(shí)驗(yàn)
    發(fā)表于 01-22 13:13 ?7次下載

    基于STM32單片機(jī)進(jìn)行PWM輸出實(shí)驗(yàn)的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于STM32單片機(jī)進(jìn)行PWM輸出實(shí)驗(yàn)的詳細(xì)資料說明包括了:1.通用定時(shí)器PWM概述,2.常用寄存器和庫函數(shù)配置,3.手把手寫
    發(fā)表于 03-18 08:00 ?18次下載
    基于<b class='flag-5'>STM32</b>單片機(jī)進(jìn)行<b class='flag-5'>PWM</b>輸出<b class='flag-5'>實(shí)驗(yàn)</b>的詳細(xì)資料說明

    使用STM32F103RB單片機(jī)實(shí)現(xiàn)PWM呼吸燈實(shí)驗(yàn)的資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STM32F103RB單片機(jī)實(shí)現(xiàn)PWM呼吸燈實(shí)驗(yàn)的資料免費(fèi)下載。
    發(fā)表于 04-07 08:00 ?8次下載
    使用<b class='flag-5'>STM32</b>F103RB單片機(jī)實(shí)現(xiàn)<b class='flag-5'>PWM</b>呼吸燈<b class='flag-5'>實(shí)驗(yàn)</b>的資料免費(fèi)下載

    STM32F4 PWM-DAC實(shí)驗(yàn)例程

    STM32F4 PWM-DAC實(shí)驗(yàn)例程(電源技術(shù)是sci嗎)-STM32F4 PWM-DAC實(shí)驗(yàn)
    發(fā)表于 09-16 10:14 ?43次下載
    <b class='flag-5'>STM32</b>F4 <b class='flag-5'>PWM</b>-DAC<b class='flag-5'>實(shí)驗(yàn)</b>例程

    STM32學(xué)習(xí)心得二十七:PWM DAC數(shù)模轉(zhuǎn)換實(shí)驗(yàn)PWM知識(shí)復(fù)習(xí)

    記錄一下,方便以后翻閱~主要內(nèi)容:1) PWM原理復(fù)習(xí);2) DAC PWM數(shù)模轉(zhuǎn)換原理;3) 相關(guān)實(shí)驗(yàn)代碼解讀。實(shí)驗(yàn)功能:官方資料:《STM3
    發(fā)表于 11-30 12:21 ?11次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)心得二十七:<b class='flag-5'>PWM</b> DAC數(shù)模轉(zhuǎn)換<b class='flag-5'>實(shí)驗(yàn)</b>及<b class='flag-5'>PWM</b>知識(shí)復(fù)習(xí)

    STM32PWM與示波器實(shí)驗(yàn)

    STM32PWM與示波器實(shí)驗(yàn)STM32輸出PWM波形1、PWM(脈沖寬度調(diào)制)介紹2、STM32
    發(fā)表于 12-02 13:21 ?24次下載
    <b class='flag-5'>STM32PWM</b>與示波器<b class='flag-5'>實(shí)驗(yàn)</b>

    實(shí)驗(yàn)4——STM32PWM和DAC練習(xí)

    文章目錄實(shí)驗(yàn)要求一、用STM32F103輸出一路PWM波形(1)PWM簡介(2)STM32F1 PWM
    發(fā)表于 12-09 16:21 ?12次下載
    <b class='flag-5'>實(shí)驗(yàn)</b>4——<b class='flag-5'>STM32</b>的<b class='flag-5'>PWM</b>和DAC練習(xí)

    STM32 使用PWM實(shí)現(xiàn)呼吸燈

    STM32 PWM實(shí)現(xiàn)呼吸燈使用STM32F103ZET6 定時(shí)器4 CH2通道產(chǎn)生PWM波,在GPIOD,GPIO_PIN13引腳LED1產(chǎn)生呼吸燈效果。
    發(fā)表于 12-24 19:41 ?55次下載
    <b class='flag-5'>STM32</b> 使用<b class='flag-5'>PWM</b>實(shí)現(xiàn)呼吸燈

    STM32通過PWM控制電機(jī)速度

    STM32智能小車的實(shí)驗(yàn)中會(huì)用到定時(shí)器PWM輸出,來改變直流電機(jī)的轉(zhuǎn)速。分享本文了解如何通過PWM實(shí)現(xiàn)對(duì)電機(jī)速度的控制。
    的頭像 發(fā)表于 07-06 09:56 ?5173次閱讀
    <b class='flag-5'>STM32</b>通過<b class='flag-5'>PWM</b>控制電機(jī)速度