【超声波控制纸团空中悬浮上下移动】【STM32】高级定时器【主从模式】PWM输出控制

为了实现超声波控制纸团在空中悬浮,并实现可上下移动控制。在此,我查阅了很多资料,都是实现了PWM的可调占空比输出,并未产生相位差,今天结合我的实际经验来作一下说明,文章末尾附图

这里省略讲述STM32和定时器相关基础知识,直接进行配置讲解,本次使用的单片机为:STM32L431RCT6

步骤一:首先,配置一个基础定时器作为固定项输出,这里使用TIM2,作为固定PWM输出

步骤二:其次,根据数据手册可以知道,当TIM1作为从模式的时候,TIM15可以作为主模式提供时钟信号,触发源为:ITR0,如下图所示:

主模式TIM15,需要配置为更新事件模式,不需要配置PWM输出,具体配置如下:

步骤三:然后,将TIM1配置为从模式,时钟源选择TIM15-ITR0

步骤四:最后,生成代码,在初始化中初始化定时器和PWM输出通道

HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
HAL_TIM_Base_Start(&htim15);

定义一个变量uint16_t Angle = 0;用与改变相位移动。只需要移动TIM2输出的PWM,即可完成相位差。

__HAL_TIM_SET_COUNTER(&htim2, Angle);

具体波形如下所示:

posted @ 2025-03-24 09:30  RefuelW  阅读(70)  评论(0)    收藏  举报