野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19722|回复: 2

捕获测量脉冲宽度

[复制链接]
发表于 2014-4-10 20:59:11 | 显示全部楼层 |阅读模式
哪位大侠做过定时器捕获测量脉冲宽度的,求分享,我怎么整都不对!!!!
回复

使用道具 举报

发表于 2014-4-10 21:08:36 | 显示全部楼层
把你的代码先贴出来吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-10 21:14:12 | 显示全部楼层
东方大乐透 发表于 2014-4-10 21:08
把你的代码先贴出来吧

void Tim_Pwm_GPIO()
{
        GPIO_InitTypeDef GPIO_InitStructure;       
        TIM_ICInitTypeDef  TIM_ICInitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
       
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);      
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                             
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

       
        TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
  TIM_ICInitStructure.TIM_ICFilter = 0x0;                       
  
        TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);
  TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2);
  TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);
  TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);
  TIM_Cmd(TIM3, ENABLE);
  TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE);

}


void NVIC_int()
{ NVIC_InitTypeDef NVIC_InitStructure;       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
       
        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;                     
  //NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

}

void int_int()
{ Tim_Pwm_GPIO();
        NVIC_int();
}
void TIM3_IRQHandler(void)
{
  
  TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);               
  IC2Value = TIM_GetCapture2(TIM3);
  IC1Value = TIM_GetCapture1(TIM3);
       
        T=IC2Value*1/72000;
  T1=T/10%10;
  T2=T%10;       
  
}

那些变量定义就不贴了,都定义过,编译使语法没错了!我是这样的想法:判断只要周期T大于20ms就亮灯,我用外部产生的20HZ(用示波器测量过了没错)输入进去,可是就是灯不亮!!!麻烦你帮俺瞧瞧

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 01:52 , Processed in 0.027360 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表