久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

STM32自帶PWM輸出實驗

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年10月21日   【字體:
#include <stm32f10x_lib.h>
#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;

所以OC1M[2:0]為

111:PWM模式2- 在向上計數(shù)時,一旦TIMx_CNT<TIMx_CCR1時通道1為無效電平,否則為有效電平;在向下計數(shù)時,一旦TIMx_CNT>TIMx_CCR1時通道1為有效電平,否則為無效電平。
默認(rèn)為高電平有效 


計數(shù)模式是  TIM3_CR1 中 位4決定
                        位4                      0:計數(shù)器向上計數(shù); 1:計數(shù)器向下計數(shù)。 
 默認(rèn)為向上計數(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寄存器被裝入緩沖器。 

// 

 

還有一篇我發(fā)布的是定時器產(chǎn)生的pwm: http://m.zg4o1577.cn/mcu/2125.html

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久tv在线观看 | 国产综合网站 | 成年视频在线观看福利资源 | 欧美精品在线看 | 国产成年人小视频 | 在线观看中文字幕 | 国产午夜在线观看 | 国产乱码精品一区二区三区五月婷 | 亚洲精品aⅴ | 一区二区片 | 成人免费看黄网站在线观看 | 国产精品久久久久久久久久 | a级大片免费观看 | 欧美精品久久久久 | 亚洲性人人天天夜夜摸 | 视频一区二区三区中文字幕 | 国产精品久久久久一区二区三区 | 高清成人免费视频 | 久久成人在线视频 | 亚洲综合无码一区二区 | 国产一级片免费看 | 欧美性生活免费 | 国产成人精品久久二区二区91 | 日韩一二区在线观看 | av福利网 | 欧美a在线观看 | 在线观看国产网站 | 91大片 | 日韩免费一区二区 | av日韩精品 | 国产视频一视频二 | 精品一区二区三区免费视频 | 亚洲精品一区二区三区丝袜 | 成人免费看电影 | 精品美女在线观看视频在线观看 | 中文字幕在线观看一区二区 | 精品亚洲视频在线 | 国产免费福利在线 | 日本亚洲精品成人欧美一区 | 91在线视频观看 | 99re在线视频 |