在使用031的timer3输出pwm,事件模式计数
void generate_5_pulses(void)
{
pulse_count = 0;
__HAL_TIM_SET_COUNTER(&htim3, 0);
__HAL_TIM_CLEAR_IT(&htim3, TIM_IT_UPDATE);
__HAL_TIM_ENABLE_IT(&htim3, TIM_IT_UPDATE);
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
}
void TIM3_IRQHandler(void)
{
if (__HAL_TIM_GET_FLAG(&htim3, TIM_FLAG_UPDATE) != RESET)
{
if (__HAL_TIM_GET_IT_SOURCE(&htim3, TIM_IT_UPDATE) != RESET)
{
__HAL_TIM_CLEAR_IT(&htim3, TIM_IT_UPDATE);
pulse_count++;
if (pulse_count >= HoldingReg1[0])
{
pulse_count=0;
__HAL_TIM_DISABLE_IT(&htim3, TIM_IT_UPDATE);
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
// TIM3->CCMR1 |= (0b0101 << TIM_CCMR1_OC1M_Pos);
//TIM3->CCER |= TIM_CCER_CC1E;
}
}
}}
执行代码每次在最后一个脉冲总有毛刺,问了一下ai,屏蔽那两句加上,强行拉低,但是代码前两次波形总是乱的,哪位大神看看哪里有问题,
|
评论
|