STM32单片机测量方波频率方法总结一、测周法:通过一个方波的两个上升沿或下降沿触发中断,然后定时器计数,计数的总个数乘以计数单位时间即该方波的周期,具体可通过单片机输入捕获功能实现,以下为参考代码//输入捕获初始化函数voidinput_frequent_init(void)//采用TIM4的Channel_1通道作为输入捕获通道{//声明结构体变量,用来初始化定时器TIM_TimeBaseInitTypeDefTIM4_TimeBaseInitStructure;TIM_ICInitTypeDefTIM4_ICInitStructure;NVIC_InitTypeDefTIM4_NVIC_InitStructure;/*开启定时器4时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);TIM_ClearITPendingBit(TIM4,TIM_IT_Update|TIM_IT_CC1);//清除捕获和中断标志位TIM4_TimeBaseInitStructure
TIM_Period=0xffff;//设定计数器自动重装值(设置为最大)TIM4_TimeBaseInitStructure
TIM_Prescaler=1;//设置分频系数TIM4_TimeBaseInitStructure
TIM_ClockDivision=TIM_C//设置时钟分割:TDTS=Tck_timKD_DIV1;TIM4_TimeBaseInitStructure
TIM_CounterMode=TIM_CounterMode_Up;//TIM向上计数模式TIM_TimeBaseInit(TIM4,&TIM4_TimeBaseInitStructure);//根据结构体参量初始化定时器TIM4_ICInitStructure