我是靠谱客的博主 拼搏大白,最近开发中收集的这篇文章主要介绍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做从定时器确定脉宽输出数量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复