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;
就是通过这里对计时器的最大值进