<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          STM32自帶PWM輸出實驗

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          #include
          #include "sys.h"
          #include "delay.h"
          #include "usart.h"

          #define LED0_val TIM3->CCR2

          void PWM_init(u16 arr,u16 psc)
          {
          RCC->APB1ENR|=1<<1; //TIM3時鐘使能
          GPIOA->CRH&=0xfffffff0; //PA8
          GPIOA->CRH|=0x00000004; //PA8 浮空輸入
          GPIOA->CRL&=0x0fffffff;
          GPIOA->CRL|=0xB0000000; //PA7復(fù)用輸出
          GPIOA->ODR|=1<<7; //PA7上啦
          TIM3->ARR=arr; //設(shè)置重裝載值
          TIM3->PSC=psc; //設(shè)置預(yù)分頻系數(shù)
          TIM3->CCMR1|=7<<12; //CH2 PWM2模式
          TIM3->CCMR1|=1<<11; //CH2預(yù)裝載使能
          TIM3->CCER|=1<<4; //OC2輸出使能
          TIM3->CR1|=0x0080; //ARPE使能
          TIM3->CR1|=0x01; //使能定時器3
          }

          int main(void)
          {
          u16 pwm=0;
          u8 dir=1;
          Stm32_Clock_Init(9);
          delay_init(72);
          uart_init(72,9600);
          PWM_init(900,0); //頻率72000/900 80KHZ

          while(1)
          {
          delay_ms(10);
          if(dir)pwm++;
          else pwm--;
          if(pwm>300)dir=0;
          if(pwm==0)dir=1;
          LED0_val=pwm;
          }
          }


          void PWM_init(u16 arr,u16 psc)函數(shù)解析:
          GPIOA->CRL&=0x0fffffff;
          GPIOA->CRL|=0xB0000000; //PA7復(fù)用輸出 因為TIM3_CH2 通道是I/O口復(fù)用的形式連接到PA7上的
          TIM3->ARR; //設(shè)置自動重裝載值
          TIM3->PSC; //設(shè)置分頻系數(shù)
          TIM3->CCMR1|=7<<12; //CH2 PWM2模式
          CCMR1用于控制CH1 和CH2通道






          由于7=0x111;

          所以O(shè)C1M[2:0]為

          本文引用地址:http://www.ex-cimer.com/article/201611/323885.htm
          111:PWM模式2- 在向上計數(shù)時,一旦TIMx_CNTTIMx_CCR1時通道1為有效電平,否則為無效電平。
          默認為高電平有效

          數(shù)模式是 TIM3_CR1 中 位4決定
          位4 0:計數(shù)器向上計數(shù); 1:計數(shù)器向下計數(shù)。
          默認為向上計數(shù)模式
          定時器的值從0-----> TIM->ARR 到自動裝載值 循環(huán)變化
          //---------------------------------------------------------------------------------------
          TIM3->CCMR1|=1<<11; //CH2預(yù)裝載使能
          TIM3->CCER|=1<<4; //OC2輸出使能


          CC2E:輸入/捕獲1輸出使能 (Capture/Compare 1 output enable)
          CC2通道配置為輸出: 0: 關(guān)閉- OC1禁止輸出。 1: 開啟- OC2信號輸出到對應(yīng)的輸出引腳。
          CC2通道配置為輸入: 該位決定了計數(shù)器的值是否能捕獲入TIMx_CCR1寄存器。 0:捕獲禁止; 0:捕獲使能。

          TIM3->CR1|=0x0080; //ARPE使能

          ARPE:自動重裝載預(yù)裝載允許位 (Auto-reload preload enable)
          0:TIMx_ARR寄存器沒有緩沖; 1:TIMx_ARR寄存器被裝入緩沖器。

          //



          關(guān)鍵詞: STM32PWM輸出實

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();