最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

STM32输入捕获控制测量频率方法程序

来源:动视网 责编:小OO 时间:2025-09-26 05:19:03
文档

STM32输入捕获控制测量频率方法程序

stm32输入捕获配置voidTIM3_Confguration(){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_ICInitTypeDefTIM_ICInitStructure;/*Timebaseconfiguration*/TIM_TimeBaseStructure.TIM_Period=1000;//这两句for1ms,stm32有72Mhz,先72分频,再计数到1000=1msTIM_TimeBaseStructure.TIM_P
推荐度:
导读stm32输入捕获配置voidTIM3_Confguration(){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_ICInitTypeDefTIM_ICInitStructure;/*Timebaseconfiguration*/TIM_TimeBaseStructure.TIM_Period=1000;//这两句for1ms,stm32有72Mhz,先72分频,再计数到1000=1msTIM_TimeBaseStructure.TIM_P
stm32输入捕获配置

void  TIM3_Confguration()

{  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

  TIM_ICInitTypeDef  TIM_ICInitStructure;

  /* Time base configuration */

  TIM_TimeBaseStructure.TIM_Period = 1000;  // 这两句for 1ms,stm32 有72Mhz,先72分频,再计数到1000=1ms

  TIM_TimeBaseStructure.TIM_Prescaler = 72;

  TIM_TimeBaseStructure.TIM_ClockDivision = 0;    

  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //上升沿计数

  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

   /* Clear TIM2 update pending flag[清除TIM2溢出中断标志] */

   TIM_ClearFlag(TIM3, TIM_FLAG_Update);

    /* Enable TIM3 Update interrupt [TIM3溢出中断允许]*/

  TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);  //以上配置的意思是1ms产生一个中断

  TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;       // Channel_1

  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;    //choose rising edge选择上升沿

  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;  //Direct connecte直接连接

  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;    //预分频器register every rising edages

  TIM_ICInitStructure.TIM_ICFilter = 0x03;    //used 3 period to wait for 系统信号接收正常

  TIM_ICInit(TIM3, &TIM_ICInitStructure);

  TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1 );   //选择时钟触发源,这里只能用1或2,意味着通道34不能用输入触发(Trigger)

  TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);//触发方式

  TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); //启动定时器的被动触发

 TIM_SetCompare1(TIM3, 0); //设置捕获计数器初值

 /* TIM3 enable counter */

 TIM_ClearITPendingBit(TIM3, TIM_IT_Update );

  TIM_ClearITPendingBit(TIM3, TIM_IT_CC1);

  TIM_Cmd(TIM3, ENABLE);

}

   /* Enable the TIM3 gloabal Interrupt [允许TIM3全局中断]*/

  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;

  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;  

  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  NVIC_Init(&NVIC_InitStructure);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 ,ENABLE);

 //PA6 for TIM3 channel 1

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

    GPIO_Init(GPIOA, &GPIO_InitStructure);

文档

STM32输入捕获控制测量频率方法程序

stm32输入捕获配置voidTIM3_Confguration(){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_ICInitTypeDefTIM_ICInitStructure;/*Timebaseconfiguration*/TIM_TimeBaseStructure.TIM_Period=1000;//这两句for1ms,stm32有72Mhz,先72分频,再计数到1000=1msTIM_TimeBaseStructure.TIM_P
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top