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

被折叠的 条评论
为什么被折叠?



