STM32用CubeMX配置PWM波,实现相移

首先感谢网上的各位大神,在你们的帮助下我顺利的调试出任意PWM相移例程,技术员源于分享,在此我开源源码,有问题请指出谢谢!
1、需要查找数据手册,查看自己MCU的定时器触发关联表,我这用的芯片是STM32F103C8T6,
在这里插入图片描述
1、cubeMX配置,打开高级定时器TIM1,配置TRGO输出触发方式,选择OC1,占空比代表输出触发时间;后面程序中修改占空比就修改TIM2定时器的相移
在这里插入图片描述
在这里插入图片描述
2、程序源码添加
占空比变量

uint16_t dutyCycle = 100;

初始化启动定时器

HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);

while中循环

if((dutyCycle != 0) && (dutyCycle <1000))	//dutyCycle ( 0~1000)
	{
		__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, dutyCycle);	//change dutyCysle and phase_shift
		__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, dutyCycle);	//change dutyCysle (htim1_dutyCysle == htim2_dutyCysle)
		dutyCycle =0;
	}
	else
	{
		dutyCycle =0;
	}
	test_value ++;
	HAL_Delay(100);

在这里插入图片描述

3、keil5仿真修改参数:
DARMSTM.DLL
-pSTM32F103C8
在这里插入图片描述
在这里插入图片描述
4、方式效果
在这里插入图片描述
在这里插入图片描述
后续测试中发现电平反转:需要在下面通道配置也加上自动重装;
在这里插入图片描述

源码 :https://github.com/NoSmallWhite/WL-open-projects

参考文档:https://blog.csdn.net/Wind4study/article/details/44860521

  • 17
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值