SPWM三相输出

1:目标 产生三路相位相差120度的正弦波

 

用定时器1使能三路通道,作为输出用。(同时也可配置互补输出通道,可产生与其对应相位相反的一路正弦波)

关于SPWM 的配置

 

SPWM三相输出_第1张图片

SPWM三相输出_第2张图片

PA8 PA9 PA10 输出三路相位相差120度的正弦波,不过输出要经过低通滤波器滤波。

低通滤波器是容许低于截止频率的信号通过, 但高于截止频率的信号不能通过的电子滤波装置。

中断内函数

SPWM三相输出_第3张图片

  TIM3->CR1 &= (uint16_t)~TIM_CR1_CEN;   关定时器3通道一

  TIM3->CR1 |= TIM_CR1_CEN; 开定时器3

                      TIM1->CCR1 = arr * (0.5f + coefficient * sin(2*PI*ii/ n  ));  //0
                      TIM1->CCR2 = arr * (0.5f + coefficient * sin(2*PI*(ii+n/3)/ n  ));  //120 
                        TIM1->CCR3 = arr * (0.5f + coefficient * sin(2*PI*(ii+2*n/3)/ n  )); //240度

存在问题:定时器内做sin数学运算及其耗时,开两个通道时正弦波频率减半,还是应该事先将正弦波数值存进数组,定时器内直接取。

 

 

你可能感兴趣的:(SPWM三相输出)