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

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

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

用定時(shí)器生成PWM波的原理和方法

GReq_mcu168 ? 來(lái)源:硬件攻城獅 ? 作者:硬件攻城獅 ? 2022-06-13 14:46 ? 次閱讀

定時(shí)器生成PWM波

PWM全稱是Pulse Width Modulation,通過(guò)控制高頻信號(hào)的占空比,眼睛當(dāng)成低通濾波器,可以控制亮暗。再循環(huán)更改pwm的閾值,就弄出了呼吸的效果。

這里采用一個(gè)比較簡(jiǎn)單的方法生成PWM波:設(shè)置定時(shí)器中斷然后根據(jù)閾值判斷置高和置低。

void TIM3_IRQHandler(void)  {TIM_ClearITPendingBit(TIM3,TIM_IT_Update);        if(counter==255)                        counter = 0;        else counter+=1;        if(mode == 0){            if(counter < pwm)                              GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1);             else                 GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1);    }        if(mode == 1)        {            if(counter < pwm)                              GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);             else GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);}        if(mode ==2){            if(counter < pwm)                              GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0);             else                 GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0);         }}

程序流程

void RCC_Configuration(void)                {     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);                                                            RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4|RCC_APB1Periph_TIM3, ENABLE); }
  • 配置GPIO

  • 配置時(shí)鐘, 使能中斷(計(jì)數(shù)閾值,預(yù)分頻,時(shí)鐘分頻,計(jì)數(shù)模式)

void tim3()                           //配置TIM3為基本定時(shí)器模式 ,約10us觸發(fā)一次,觸發(fā)頻率約100kHz{TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;//定義格式為T(mén)IM_TimeBaseInitTypeDef的結(jié)構(gòu)體的名字為T(mén)IM_TimeBaseStructureTIM_TimeBaseStructure. TIM_Period =9;         //配置計(jì)數(shù)閾值為9,超過(guò)時(shí),自動(dòng)清零,并觸發(fā)中斷TIM_TimeBaseStructure.TIM_Prescaler=71;//時(shí)鐘預(yù)分頻值,除以多少TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  // 時(shí)鐘分頻倍數(shù)TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//計(jì)數(shù)方式為向上計(jì)數(shù)TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);      //  初始化tim3TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIM3溢出中斷標(biāo)志TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //  使能TIM3的溢出更新中斷TIM_Cmd(TIM3,ENABLE);                     //           使能TIM3}
  • 配置中斷優(yōu)先級(jí)

void nvic()                                 //配置中斷優(yōu)先級(jí){    NVIC_InitTypeDefNVIC_InitStructure;////命名一優(yōu)先級(jí)變量 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);    //     將優(yōu)先級(jí)分組方式配置為group1,有2個(gè)搶占(打斷)優(yōu)先級(jí),8個(gè)響應(yīng)優(yōu)先級(jí) NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //該中斷為T(mén)IM4溢出更新中斷 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//打斷優(yōu)先級(jí)為1,在該組中為較低的,0優(yōu)先級(jí)最高 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 響應(yīng)優(yōu)先級(jí)0,打斷優(yōu)先級(jí)一樣時(shí),0最高 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        //  設(shè)置使能NVIC_Init(&NVIC_InitStructure);//初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //要用同一個(gè)Group NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3 溢出更新中斷 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//    打斷優(yōu)先級(jí)為1,與上一個(gè)相同,不希望中斷相互打斷對(duì)方 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;     //  響應(yīng)優(yōu)先級(jí)1,低于上一個(gè),當(dāng)兩個(gè)中斷同時(shí)來(lái)時(shí),上一個(gè)先執(zhí)行 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);}
  • 寫(xiě)中斷服務(wù)函數(shù)

代碼實(shí)現(xiàn)

為了方便按鍵檢測(cè),除了TIM3配置PWM波之外,TIM4用來(lái)檢測(cè)是否有輸入。由于使用開(kāi)漏輸出,這里使用5V電源。

#include "stm32f10x.h"#include "math.h"#include"stdio.h"
u8  counter=0; int  pwm=100;int flag=0;int mode =0;int velocity =0;int turning=1;
void RCC_Configuration(void);    //時(shí)鐘初始化,開(kāi)啟外設(shè)時(shí)鐘void GPIO_Configuration(void);   //IO口初始化,配置其功能void tim3(void);                 //定時(shí)器tim4初始化配置void tim4(void);                 //定時(shí)器tim4初始化配置void nvic(void);                 //中斷優(yōu)先級(jí)等配置void exti(void);                 //外部中斷配置void delay_nus(u32);           //72M時(shí)鐘下,約延時(shí)usvoid delay_nms(u32);            //72M時(shí)鐘下,約延時(shí)msvoid breathing(int velocity){        switch(velocity){                case 0:                    if(flag)                            pwm +=1;                            if(pwm>240) flag=0;                    if(flag == 0){                            pwm -=1;                            if(pwm<10) flag=1;                    }break;                case 1:                    if(flag)                            pwm +=2;                            if(pwm>240) flag=0;                    if(flag == 0){                            pwm -=2;                            if(pwm<10) flag=1;                    }break;                case 2:                    if(flag)                            pwm +=3;                            if(pwm>240) flag=0;                    if(flag == 0){                            pwm -=3;                            if(pwm<10) flag=1;                    }                    break;        }}

void assert_failed(uint8_t* file, uint32_t line){    printf("Wrong parameters value: file %s on line %d
", file, line);    while(1);}
void TIM4_IRQHandler(void)   //TIM4的溢出更新中斷響應(yīng)函數(shù) ,讀取按鍵輸入值,根據(jù)輸入控制pwm波占空比{        u8 key_in1=0x01,key_in2=0x01;TIM_ClearITPendingBit(TIM4,TIM_IT_Update);//清空TIM4溢出中斷響應(yīng)函數(shù)標(biāo)志位        key_in1= GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_12);  // 讀PC12的狀態(tài)key_in2=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13);//讀PC13的狀態(tài)if(key_in1&&key_in2)turning=1;breathing(velocity);        if(key_in1==0 && turning){                turning =0;        velocity = (velocity + 1) % 3;}//調(diào)速度    if(key_in2==0 && turning){                turning =0;        mode = (mode + 1) % 3;    }//調(diào)顏色}   

void TIM3_IRQHandler(void)      //    //TIM3的溢出更新中斷響應(yīng)函數(shù),產(chǎn)生pwm波{TIM_ClearITPendingBit(TIM3,TIM_IT_Update);////清空TIM3溢出中斷響應(yīng)函數(shù)標(biāo)志位        if(counter==255)            //counter 從0到255累加循環(huán)計(jì)數(shù),每進(jìn)一次中斷,counter加一            counter = 0;        else counter+=1;        if(mode == 0){            if(counter < pwm)              //當(dāng)counter值小于pwm值時(shí),將IO口設(shè)為高;當(dāng)counter值大于等于pwm時(shí),將IO口置低                GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1); //將PC14 PC15置為高電平            else                         GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1);     // 將PC14 PC15置為低電平}        if(mode == 1)        {            if(counter < pwm)              //當(dāng)counter值小于pwm值時(shí),將IO口設(shè)為高;當(dāng)counter值大于等于pwm時(shí),將IO口置低                GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2); //將PC14 PC15置為高電平            else GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);//將PC14PC15置為低電平}        if(mode ==2){            if(counter < pwm)              //當(dāng)counter值小于pwm值時(shí),將IO口設(shè)為高;當(dāng)counter值大于等于pwm時(shí),將IO口置低                GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0); //將PC14 PC15置為高電平            else                 GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0); // 將PC14 PC15置為低電平        }}   

int main(void){    RCC_Configuration();                                                                      GPIO_Configuration();                             tim4();    tim3();nvic();    while(1)    { }}   
void delay_nus(u32 n)       //72M時(shí)鐘下,約延時(shí)us{  u8 i;  while(n--)  {    i=7;    while(i--);  }}

void delay_nms(u32 n)     //72M時(shí)鐘下,約延時(shí)ms{    while(n--)      delay_nus(1000);}

void RCC_Configuration(void)                 //使用任何一個(gè)外設(shè)時(shí),務(wù)必開(kāi)啟其相應(yīng)的時(shí)鐘{    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);    //使能APB2控制外設(shè)的時(shí)鐘,包括GPIOC, 功能復(fù)用時(shí)鐘AFIO等,                                                                                  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4|RCC_APB1Periph_TIM3, ENABLE); //使能APB1控制外設(shè)的時(shí)鐘,定時(shí)器tim3、4,其他外設(shè)詳見(jiàn)手冊(cè)             }

void GPIO_Configuration(void)            //使用某io口輸入輸出時(shí),請(qǐng)務(wù)必對(duì)其初始化配置{    GPIO_InitTypeDef GPIO_InitStructure;   //定義格式為GPIO_InitTypeDef的結(jié)構(gòu)體的名字為GPIO_InitStructure  //typedefstruct{u16GPIO_Pin;GPIOSpeed_TypeDefGPIO_Speed;GPIOMode_TypeDefGPIO_Mode;}GPIO_InitTypeDef;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;    //配置IO口的工作模式為上拉輸入(該io口內(nèi)部外接電阻到電源)    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //配置IO口最高的輸出速率為50M    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13;  //配置被選中的管腳,|表示同時(shí)被選中GPIO_Init(GPIOC,&GPIO_InitStructure);//初始化GPIOC的相應(yīng)IO口為上述配置,用于按鍵檢測(cè)    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;       //配置IO口工作模式為 推挽輸出(有較強(qiáng)的輸出能力)    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      //配置IO口最高的輸出速率為50M    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;  //配置被選的管腳,|表示同時(shí)被選中    GPIO_Init(GPIOA, &GPIO_InitStructure);        //初始化GPIOA的相應(yīng)IO口為上述配置    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //失能STM32 JTAG燒寫(xiě)功能,只能用SWD模式燒寫(xiě),解放出PA15和PB中部分IO口}

void tim4()                           //配置TIM4為基本定時(shí)器模式,約10ms觸發(fā)一次,觸發(fā)頻率約100Hz{TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;//定義格式為T(mén)IM_TimeBaseInitTypeDef的結(jié)構(gòu)體的名字為T(mén)IM_TimeBaseStructure    TIM_TimeBaseStructure. TIM_Period =9999;          // 配置計(jì)數(shù)閾值為9999,超過(guò)時(shí),自動(dòng)清零,并觸發(fā)中斷TIM_TimeBaseStructure.TIM_Prescaler=71;//時(shí)鐘預(yù)分頻值,除以多少    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 時(shí)鐘分頻倍數(shù)TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//計(jì)數(shù)方式為向上計(jì)數(shù)    TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);      //  初始化tim4    TIM_ClearITPendingBit(TIM4,TIM_IT_Update); //清除TIM4溢出中斷標(biāo)志    TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);   //  使能TIM4的溢出更新中斷    TIM_Cmd(TIM4,ENABLE);                //        使能TIM4}

void tim3()                           //配置TIM3為基本定時(shí)器模式 ,約10us觸發(fā)一次,觸發(fā)頻率約100kHz{TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;//定義格式為T(mén)IM_TimeBaseInitTypeDef的結(jié)構(gòu)體的名字為T(mén)IM_TimeBaseStructure    TIM_TimeBaseStructure. TIM_Period =9;         //配置計(jì)數(shù)閾值為9,超過(guò)時(shí),自動(dòng)清零,并觸發(fā)中斷TIM_TimeBaseStructure.TIM_Prescaler=71;//時(shí)鐘預(yù)分頻值,除以多少    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  // 時(shí)鐘分頻倍數(shù)TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//計(jì)數(shù)方式為向上計(jì)數(shù)    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);      //  初始化tim3    TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIM3溢出中斷標(biāo)志    TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //  使能TIM3的溢出更新中斷    TIM_Cmd(TIM3,ENABLE);                     //           使能TIM3}

void nvic()                                 //配置中斷優(yōu)先級(jí){    NVIC_InitTypeDefNVIC_InitStructure;////命名一優(yōu)先級(jí)變量     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);    //     將優(yōu)先級(jí)分組方式配置為group1,有2個(gè)搶占(打斷)優(yōu)先級(jí),8個(gè)響應(yīng)優(yōu)先級(jí)     NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //該中斷為T(mén)IM4溢出更新中斷     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//打斷優(yōu)先級(jí)為1,在該組中為較低的,0優(yōu)先級(jí)最高     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 響應(yīng)優(yōu)先級(jí)0,打斷優(yōu)先級(jí)一樣時(shí),0最高     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        //  設(shè)置使能NVIC_Init(&NVIC_InitStructure);//初始化     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //要用同一個(gè)Group     NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3 溢出更新中斷     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//    打斷優(yōu)先級(jí)為1,與上一個(gè)相同,不希望中斷相互打斷對(duì)方     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;     //  響應(yīng)優(yōu)先級(jí)1,低于上一個(gè),當(dāng)兩個(gè)中斷同時(shí)來(lái)時(shí),上一個(gè)先執(zhí)行     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);}

原文標(biāo)題:STM32呼吸燈的PWM原理與代碼實(shí)現(xiàn)

文章出處:【微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    114

    文章

    5105

    瀏覽量

    212878
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

    114168
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68098

原文標(biāo)題:STM32呼吸燈的PWM原理與代碼實(shí)現(xiàn)

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    定時(shí)器PWM模式的疑點(diǎn)!

    先上圖,這是我定時(shí)器3的PWM模式1的通道1生成的脈沖但是接二連三的問(wèn)題就出現(xiàn)了首先我在定時(shí)器
    發(fā)表于 04-30 15:27

    定時(shí)器產(chǎn)生PWM

    定時(shí)器產(chǎn)生20ms為周期的PWM,可以實(shí)現(xiàn),但是我的步進(jìn)有0.08ms,我現(xiàn)在想實(shí)現(xiàn)步進(jìn)0.02ms,怎么辦。
    發(fā)表于 08-09 15:33

    一個(gè)定時(shí)器生成多路PWM波形的原理和方法

    ,實(shí)現(xiàn)一個(gè)定時(shí)器生成多路PWM方法如下。首先來(lái)看看一個(gè)定時(shí)器實(shí)現(xiàn)一路
    發(fā)表于 03-30 21:03

    如何判斷PWM是由定時(shí)器還是PWM模塊產(chǎn)生的?

    正在看清華版的原理&實(shí)踐,在看到TM4C的PWM模塊時(shí)沒(méi)太看懂,PWM聲稱模塊中也是用了定時(shí)器,定時(shí)器生成
    發(fā)表于 09-06 10:55

    定時(shí)器輸出PWM

    定時(shí)器輸出PWM什么是PWM脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫(xiě),簡(jiǎn)稱脈寬調(diào)制,是利用微處
    發(fā)表于 01-05 07:05

    定時(shí)器輸出PWM實(shí)驗(yàn)

    定時(shí)器輸出PWM 實(shí)驗(yàn) 一. 實(shí)驗(yàn)?zāi)康睦?b class='flag-5'>定時(shí)器控制產(chǎn)生占空比可變的PWM 。二. 實(shí)驗(yàn)設(shè)備及器件IBM PC 機(jī) 一臺(tái)DP-51PRO
    發(fā)表于 09-22 10:49 ?7350次閱讀

    如何通過(guò)STM32的定時(shí)器輸出PWM?

    ? 本文將介紹通過(guò)STM32的定時(shí)器輸出PWM,如果對(duì)定時(shí)器不太熟悉的同學(xué)可以看下之前的文章《STM32基礎(chǔ)定時(shí)器詳解》,關(guān)于定時(shí)器的基礎(chǔ)功
    的頭像 發(fā)表于 02-20 15:08 ?2.2w次閱讀
    如何通過(guò)STM32的<b class='flag-5'>定時(shí)器</b>輸出<b class='flag-5'>PWM</b>?

    51單片機(jī)定時(shí)器實(shí)現(xiàn)PWM

    51單片機(jī)是可以實(shí)現(xiàn)PWM輸出的,原理其實(shí)都是一樣的。說(shuō)白了,PWM就是讓某一個(gè)引腳輸出周期性連續(xù)高低電平變化的信號(hào)。那么如何用51單片機(jī)實(shí)現(xiàn)周期性的高低電平呢?答案就是
    發(fā)表于 11-12 10:36 ?13次下載
    51單片機(jī)<b class='flag-5'>定時(shí)器</b>實(shí)現(xiàn)<b class='flag-5'>PWM</b><b class='flag-5'>波</b>

    STM8學(xué)習(xí)筆記---定時(shí)器輸出7路PWM

    STM8S003F3P6單片機(jī)共有三個(gè)定時(shí)器定時(shí)器1、定時(shí)器2、定時(shí)器4。其中定時(shí)器1為16位高級(jí)定時(shí)器
    發(fā)表于 11-26 16:06 ?9次下載
    STM8學(xué)習(xí)筆記---<b class='flag-5'>定時(shí)器</b>輸出7路<b class='flag-5'>PWM</b><b class='flag-5'>波</b>

    STM32CubeMX_定時(shí)器中斷_PWM

    文章目錄前言STM32CubeMX新建工程基本定時(shí)器配置生成代碼定時(shí)器中斷PWM配置工程代碼前言STM32CubeMX_環(huán)境搭建_GPIO_外部中斷上節(jié)整理的是GPIO和外部中斷, 這
    發(fā)表于 12-05 13:51 ?13次下載
    STM32CubeMX_<b class='flag-5'>定時(shí)器</b>中斷_<b class='flag-5'>PWM</b>

    定時(shí)器生成PWM方法

    PWM全稱是Pulse Width Modulation,通過(guò)控制高頻信號(hào)的占空比,眼睛當(dāng)成低通濾波,可以控制亮暗。再循環(huán)更改PWM的閾值,就弄出了呼吸的效果,相關(guān)文章推薦:STM32中PW
    的頭像 發(fā)表于 07-29 09:15 ?2788次閱讀

    如何使用555定時(shí)器來(lái)產(chǎn)生PWM

    PWM ,那么我們更喜歡一些通用IC,如運(yùn)算放大器,定時(shí)器,脈沖發(fā)生等。這里我們使用 555定時(shí)器IC來(lái)產(chǎn)生PWM 。 555
    的頭像 發(fā)表于 01-25 15:09 ?7314次閱讀
    如何使用555<b class='flag-5'>定時(shí)器</b>來(lái)產(chǎn)生<b class='flag-5'>PWM</b>

    利用通用定時(shí)器輸出PWM(附示例驅(qū)動(dòng)直流電機(jī))

    上一節(jié)講述了時(shí)鐘樹(shù)和基本定時(shí)器的配置方法,本節(jié)先介紹通用定時(shí)器和基本定時(shí)器的差異,然后粗略講述PWM
    發(fā)表于 04-03 14:56 ?0次下載
    利用通用<b class='flag-5'>定時(shí)器</b>輸出<b class='flag-5'>PWM</b>(附示例驅(qū)動(dòng)直流電機(jī))

    一文詳解HPM6000系列PWM定時(shí)器模塊

    在進(jìn)行電機(jī)類(lèi)、電源類(lèi)應(yīng)用開(kāi)發(fā)時(shí),如何使用PWM定時(shí)器模塊靈活、高效的實(shí)現(xiàn)所需 PWM波形的輸出,是眾多開(kāi)發(fā)者關(guān)注的問(wèn)題。在上篇文章里,我們介紹了PWM
    的頭像 發(fā)表于 05-30 14:36 ?1037次閱讀
    一文詳解HPM6000系列<b class='flag-5'>PWM</b><b class='flag-5'>定時(shí)器</b>模塊

    高精度定時(shí)器與高級(jí)控制定時(shí)器 PWM后再恢復(fù)的區(qū)別

    高精度定時(shí)器與高級(jí)控制定時(shí)器 PWM后再恢復(fù)的區(qū)別
    的頭像 發(fā)表于 10-17 16:52 ?670次閱讀
    高精度<b class='flag-5'>定時(shí)器</b>與高級(jí)控制<b class='flag-5'>定時(shí)器</b> <b class='flag-5'>PWM</b> 封<b class='flag-5'>波</b>后再恢復(fù)的區(qū)別