关于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;
}
}
}