我是靠谱客的博主 拼搏大白,最近开发中收集的这篇文章主要介绍STM32CUBEMX配置定时器主从模式,发送指定个数脉冲,驱动步进电机精确启停定时器3做主定时器输出PWM,定时器4做从定时器确定脉宽输出数量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

STM32CUBEMX配置定时器主从模式,驱动步进电机精确启停

  • 定时器3做主定时器输出PWM,定时器4做从定时器确定脉宽输出数量

定时器3做主定时器输出PWM,定时器4做从定时器确定脉宽输出数量

先配置一下cubemx主从关系根据这个表来配置

在这里插入图片描述
主定是起TIM3配置

在这里插入图片描述

在这里插入图片描述

从定时器TIM4配置

在这里插入图片描述

在这里插入图片描述
开启定时器中断

在这里插入图片描述
定时器中断回调函数实现

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim==(&htim4))
{

    if(__HAL_TIM_GET_FLAG(&htim4, TIM_FLAG_CC1) != RESET)          
    { 
         __HAL_TIM_CLEAR_FLAG(&htim4, TIM_FLAG_CC1);                
          
         HAL_TIM_PWM_Stop_IT(&htim3, TIM_CHANNEL_1);                   
         
         HAL_TIM_Base_Stop_IT(&htim4);                                          
    
    }
			
    FLAG1_OK = 1;
}

}

PWM实现函数传入的是脉冲个数
void Output_Pwm (uint32_t pwmvalue)
{
if(FLAG1_OK == 1 )
{
FLAG1_OK = 0;
__HAL_TIM_SET_AUTORELOAD(&htim4,pwmvalue-1);
HAL_TIM_Base_Start_IT(&htim4);
HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_1);
}
}

最后放一张实现的效果图

在这里插入图片描述
源代码见下一篇文章
已经经过证实可以实现控制脉冲个数输出,用的是stm32c8t6最小系统板,有什么不对的地方欢迎大家指正,一起探讨更好的解决方案。

最后

以上就是拼搏大白为你收集整理的STM32CUBEMX配置定时器主从模式,发送指定个数脉冲,驱动步进电机精确启停定时器3做主定时器输出PWM,定时器4做从定时器确定脉宽输出数量的全部内容,希望文章能够帮你解决STM32CUBEMX配置定时器主从模式,发送指定个数脉冲,驱动步进电机精确启停定时器3做主定时器输出PWM,定时器4做从定时器确定脉宽输出数量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部