平台:stm32F429 +HAL 库+数字舵机
控制舵机体现在控制舵机的角度,通常舵机角度是0-180°。
如果设置为高电平有效,那么当定时器比较匹配之后,输出口输出高电平,否则就反一下。
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"
int main(void)
{
u8 dir=1;
u16 led0pwmval=0;
HAL_Init();
Stm32_Clock_Init(360,25,2,8); //时钟180MHZ
delay_init(180);
uart_init(115200);
LED_Init();
TIM3_PWM_Init(20000-1,90-1); //PWM_Init 自动重装数为2000,自动重装值设置为20000,既
//该定时器每计数20000次触发一次中断,预分频为1MHz,则
//周期为20ms
u16 delay_time=300;
while(1)
{
TIM_SetTIM3Compare4(500); //0°
delay_ms(1000);
TIM_SetTIM3Compare4(1000); //45°
delay_ms(1000);
TIM_SetTIM3Compare4(1500); //90°
delay_ms(1000);
TIM_SetTIM3Compare4(2000); //135°
delay_ms(1000);
TIM_SetTIM3Compare4(2500); //180°
delay_ms(1000);
}
}
参考资料:
https://blog.csdn.net/qq_40499719/article/details/81267895
https://blog.csdn.net/menshu1892/article/details/76548071
https://blog.csdn.net/weixin_37127273/article/details/80492288