关于PWM的输出波形问题

本文探讨了在使用PWM控制电机转速时遇到的波形丢失现象。通过对原有修改频率函数的分析,指出该方法可能导致PWM波形丢失。提出了解决方案,即通过调整PWM输出对应的计时器最大值并重新启用定时器,以实现PWM波形的有效修改,从而保证电机转速控制的稳定性。
摘要由CSDN通过智能技术生成

PWM波在使用过程中,会改变其频率,从而改变电机的转速,以实现需求功能。
现象:
在正常使用的过程中PWM波会出现丢失波形的情况。
解决:
原本使用这个函数对PWM进行修改频率。在使用过程中会把PWM波形丢失。

	TIM8_Mode_Config(2250);

后改为

myCycle=2250;
TIM_Cmd(ADVANCE_TIM, ENABLE);

通过修改PWM输出对应计时器的最大值,再重新使能定时器,即可做到对PWM波形的修改。

void TIM8_Mode_Config(u32 Cycle)		//TIM8输出PWM波配置函数
{
	
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure;
	TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
	
	// 开启TIMx_CLK,x[1,8] 
  RCC_APB2PeriphClockCmd(ADVANCE_TIM_CLK, ENABLE); 

  /* 累计 TIM_Period个后产生一个更新或者中断*/		
  //当定时器从0计数到1023,即为1024次,为一个定时周期
  TIM_TimeBaseStructure.TIM_Period = 2-1;
	// 高级控制定时器时钟源TIMxCLK = HCLK=180MHz 
	// 设定定时器频率为=TIMxCLK/(TIM_Prescaler+1)=100000Hz

就是通过这里对计时器的最大值进行更改/
就是通过这里对计时器的最大值进行更改/
  TIM_TimeBaseStructure.TIM_Prescaler = myCycle-1;	
就是通过这里对计时器的最大值进
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值