STM32 HAL 检测PWM频率/占空比

本文介绍如何使用STM32CubeMX配置STM32的系统时钟,并通过TIM4定时器实现中断功能。详细展示了如何设置TIM4的CH2引脚中断,包括配置时钟频率、设置中断回调函数等步骤。同时,给出了计算占空比和周期的具体方法。

1.STM32CubeMX配置

配置的系统时钟是100M,Timer的时钟也是100M
在这里插入图片描述
在这里插入图片描述
Timer 的频率为:100M 分频 1000 = 0.1MHz 也就是定时器 每10us 计一个数

打开TIM4_CH2引脚中断

在这里插入图片描述
在这里插入图片描述

2.程序应用

main.c中开启中断

  HAL_TIM_IC_Start_IT(&htim4, TIM_CHANNEL_1); // 开启tim4通道1的中断
  HAL_TIM_IC_Start_IT(&htim4, TIM_CHANNEL_2); // 开启tim4通道2的中断

TIM4_CH2引脚中断回调

static uint32_t TempPIpre = 0;
static uint32_t TempPIpul = 0;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{

  if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
  {
    TempPIpre = HAL_TIM_ReadCapturedValue(&htim4, TIM_CHANNEL_1); // 1.读取高电平时间
    TempPIpul = HAL_TIM_ReadCapturedValue(&htim4, TIM_CHANNEL_2); // 2.读取整周期时间
    __HAL_TIM_SetCounter(&htim4, 0);                              // 3.定时器计数清零
  }
}

在这里插入图片描述

占空比%:TempPIpre *100 / TempPIpul
周期T: TempPIpul * 10us
频率f: 1 / T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值