关于PWM驱动sg90电机,不管是180°还是360°舵机都满足左侧的条件关系。
PWM周期为20ms,频率为50Hz
重装载值arr = 1999
预分频值psc = 7199
stm32f103主频72MHz
TIM3_Int_Init(1999,7199);//Tout= (arr+1)(psc+1)/TCLK;72000000/2000/7200=50
PWM周期 = (主频 / [(arr+1)*(psc+1)]
TIM_SetCompare(a,b);函数的使用:
占空比duty = Compare1/(arr+1)
举例:
#include "delay.h"
#include "sys.h"
#include "PWM.h"
#include "key.h"
#include "usart.h"u8 t=0;
int main(void)
{delay_init(); KEY_Init(); uart_init(115200);TIM3_PWM_Init(999,1439);//PB5输出while(1){t=KEY_Scan(0);switch (t){case KEY0_PRES ://按按键0转到0°的位置TIM_SetCompare2(TIM3,25);delay_ms(100);break;case KEY1_PRES ://按按键1转到45°的位置TIM_SetCompare2(TIM3,50);delay_ms(100);break;default :break;}}}