• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: STM32  捕获PWM波  

资源简介

STM32 定时器捕获PWM波 以及占空比

资源截图

代码片段和文件信息

#include “timer2.h“
u16 Value1Value2Value3Value4;
float t;
//端口配置函数
//将PA0配置为浮空输入
void PA0_Init(void)
{
   RCC->APB2ENR|=1<<2;
   GPIOA->CRL&=0xFFFFFFF0;
   GPIOA->CRL|=0x00000004;    //将PA0口设置为浮空输入模式
}
//定时器1设置为输入捕获模式
//CH1用于测周期
//CH2用于测高电平
//72M/(psc+1)
void TIM2_Capture_Init(u8 psc)
{
   PA0_Init();
   RCC->APB1ENR|=1<<0;
   TIM2->PSC=psc;   //不进行分频
   TIM2->ARR=65535;   
   TIM2->CCMR1|=1<<0;        //IC1映射到TI1上,设为输入捕获模式
   //TIM1->CCMR1|=7<<4;        //这里采样频率为基准频率的1/4,且N=8,设CLK为72M时,高于2.6M捕获不到
   TIM2->CCER&=~(1<<1);      //捕获发生在IC1的上升沿
   TIM2->CCMR1|=2<<8;        //IC2映射到TI1上,即用TI1FP2去触发CH2,
   TIM2->CCER|=1<<5;         //TI1下降沿触发
   TIM2->SMCR|=5<<4;         //选择触发源为滤波获得定时器1
   TIM2->SMCR|=4<<0;         //选择复位模式,即选中的触发输入的上升沿会重新初始化计数器
   TIM2->CCER|=1<<0;         //捕获1使能
   TIM2->CCER|=1<<4;         //捕获2使能
   TIM2->DIER|=1<<1;         //使能捕获1中断
   TIM2->DIER|=1<<2;         //使能捕获2中断*/
   //TIM2->DIER|=1<<0;     //允许更新中断
   //TIM2->DIER|=1<<6;         //允许触发中断
   TIM2->CR1|=1<<0;   //开启定时器1
   MY_NVIC_Init(13TIM2_IRQChannel2);
}
//中断处理函数
void  TIM2_IRQHandler(void)
{
   if(TIM2->SR&0x02)   //如果CC1通道捕获成功
   {
      Value1=TIM2->CCR1;      //将捕获寄存器送与变量Value1
      TIM2->SR&=0xFFFD;
   }else if(TIM2->SR&0x04)
   {
      Value2=TIM2->CCR2;      //如果CC2通道捕获成功
      TIM2->SR&=0xFFFB;       //将中断标志清零
   }
}
//处理函数,将VALUE的值转化为相应的频率值
void Change(void)
{
   Value3=72000000/(Value1+1);   //当psc为0时该式成立
   t=((float)Value2)/((float)(Value1));
   t=t*100;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-30 17:27  定时器捕获PWM波  以及占空比\
     文件         134  2011-08-08 20:44  定时器捕获PWM波  以及占空比\介绍.txt
     目录           0  2012-05-30 17:27  定时器捕获PWM波  以及占空比\程序\
     目录           0  2012-05-30 17:27  定时器捕获PWM波  以及占空比\程序\TIM2\
     文件        1803  2011-08-27 08:43  定时器捕获PWM波  以及占空比\程序\TIM2\timer2.c
     文件         195  2012-07-22 21:25  定时器捕获PWM波  以及占空比\程序\TIM2\timer2.h
     目录           0  2012-05-30 17:27  定时器捕获PWM波  以及占空比\程序\TIM3\
     文件         702  2011-08-08 20:49  定时器捕获PWM波  以及占空比\程序\TIM3\timer3.c
     文件         134  2011-08-08 10:46  定时器捕获PWM波  以及占空比\程序\TIM3\timer3.h

评论

共有 条评论