1、使用STM32CubeMX配置定时器



while (1)
{
HAL_Delay(1000); //延时1S
htim1.Init.RepetitionCounter=puleNum;//输出次数
htim1.Init.Period=fPuARR; //修改周期值,改变频率
pul1 = fPuARR/4;
htim1.Instance->CCR1=pul1; //通道1是25%占空比
htim1.Instance->CCR2=pul1*3; //通道2是75%占空比
HAL_TIM_PWM_Init(&htim1);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
}
输出次数是0的输出波形

次数1

次数2

次数3

次数4

说明:配置的相位是高,这里做了反相,所以开始是高电压,开始后是低电压开始计数,到25%的ARR时A相跳变,75%时B相跳变,当偶数次的跳变会形成一个脉冲,奇数次时AB相会有一个同时变化的开始电压跳变。
htim1.Instance->CCR1=pul1; //通道1是25%占空比
htim1.Instance->CCR2=pul1*3; //通道2是75%占空比
互换上面的CCR的值,编码器输出反转
796

被折叠的 条评论
为什么被折叠?



