网站栏目管理建设,网站开发英语英语,网站如何进行备案,网站制作公司美股上市参考教程#xff1a;【STM32入门教程-2023版 细致讲解 中文字幕】
定时器输入捕获 IC#xff08;Input Capture#xff09;输入捕获输入捕获模式下#xff0c;当通道输入引脚出现指定电平跳变时#xff0c;当前CNT的值将被锁存到CCR中#xff0c;可用于测量PWM波形的频率…参考教程【STM32入门教程-2023版 细致讲解 中文字幕】
定时器输入捕获 ICInput Capture输入捕获输入捕获模式下当通道输入引脚出现指定电平跳变时当前CNT的值将被锁存到CCR中可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数每个高级定时器和通用定时器都拥有4个输入捕获通道可配置为PWMI模式同时测量频率和占空比可配合主从触发模式实现硬件全自动测量
频率测量 测频法在闸门时间T内对上升沿计次得到N则频率f_xN / T 测周法两个上升沿内以标准频率fc计次得到N 则频率f_xf_c / N 中界频率测频法与测周法误差相等的频率点f_m√f_c / T
输入捕获通道 主模式和从模式触发 输入捕获基本结构 PWMI基本结构 由于只有TI1FP1和TI2FP2连到了从模式控制器所以PWM输入模式只能使用TIMx_CH1
/TIMx_CH2信号。
代码实例
#include stm32f10x.h // Device headervoid IC_Init(void)
{//使能TIM3系统时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//TIM3时基单元初始化用于捕获TIM2产生的PWM波TIM_TimeBaseInitTypeDef TIM3_TimeBaseInitStruct;TIM3_TimeBaseInitStruct.TIM_ClockDivision TIM_CKD_DIV1;TIM3_TimeBaseInitStruct.TIM_CounterMode TIM_CounterMode_Up;TIM3_TimeBaseInitStruct.TIM_Period 65536 - 1; TIM3_TimeBaseInitStruct.TIM_Prescaler 36 - 1;TIM3_TimeBaseInitStruct.TIM_RepetitionCounter 0x00;TIM_TimeBaseInit(TIM3,TIM3_TimeBaseInitStruct);TIM_InternalClockConfig(TIM3);//输入捕获初始化TIM_ICInitTypeDef TIM3_ICInitStructure;TIM3_ICInitStructure.TIM_Channel TIM_Channel_1;TIM3_ICInitStructure.TIM_ICFilter 0xF;TIM3_ICInitStructure.TIM_ICPolarity TIM_ICPolarity_Rising;TIM3_ICInitStructure.TIM_ICPrescaler TIM_ICPSC_DIV1;TIM3_ICInitStructure.TIM_ICSelection TIM_ICSelection_DirectTI; //直连输入TIM_ICInit(TIM3,TIM3_ICInitStructure);//根据TIM3_ICInitStructure配置为PWMI模式也就是增加选择器的另一路设置极性和非直连输入TIM_PWMIConfig(TIM3,TIM3_ICInitStructure);//设置输入触发源TIM_SelectInputTrigger(TIM3,TIM_TS_TI1FP1);//设置从模式TIM_SelectSlaveMode(TIM3,TIM_SlaveMode_Reset);TIM_Cmd(TIM3,ENABLE);
}//param Freqc:fc频率表示TIM3计数器频率
uint32_t IC_GetFreq(uint32_t Freqc)
{return (uint32_t)(Freqc/TIM_GetCapture1(TIM3));
}//获取占空比为百分比
uint8_t IC_GetDuty(void)
{return (uint8_t)(100*TIM_GetCapture2(TIM3)/TIM_GetCapture1(TIM3));
}