STM32输入捕获

该博客介绍了如何使用STM32的输入捕获功能来测量PWM波的频率。首先初始化PWM输出,设置定时器3产生2KHz的PWM波。然后配置定时器5的输入捕获功能,用于在上跳沿时记录计数器值,通过计算两次上跳沿之间的计数值来确定PWM周期。在中断处理程序中,捕获信息并判断是否成功捕获一个PWM周期。主程序根据捕获的数据计算频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次试验使用STM32的输入捕获功能,测量PWM的频率。需要初始化的模块有PWM输出和输入捕获。

PWM模块初始化设置定时器3通道1,对应引脚为PC6,设置计数频率为(72M/72),自动重装载值为500。

即产生2Khz的PWM波

PWM波初始化

TIM3_CH1_PWM_Init(500-1,72-1);	//2k,PC6;
TIM_SetCompare1(TIM3,250);	    //在main中初始化比较器值;
void TIM3_CH1_PWM_Init(u16 per,u16 psc)
{
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_OCInitTypeDef TIM_OCInitStructure;
	GPIO_InitTypeDef GPIO_InitStructure;
	
	/* 开启时钟 */
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
	
	/*  配置GPIO的模式和IO口 */
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	
	GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//改变指定管脚的映射	
	
	TIM_TimeBaseInitStructure
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值