前言
用pwm来运行舵机,舵机是基础的sg90
一、基础知识
0.5ms——————-舵机会转动 0 °
1.0ms——————-舵机会转动 45°
1.5ms——————-舵机会转动 90°
2.0ms——————-舵机会转动 135°
2.5ms——————-舵机会转动180°
占空比对应转动的角度
周期=(arr+1)(psc+1)/72000000=(1999+1)(71+1)/72000000=20ms
二、代码
1.pwm.c
#include "pwm.h"
#include "led.h"
void TIM1_PWM_Init(u16 arr,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); //ʹÄÜGPIOÍâÉèʱÖÓʹÄÜ
//ÉèÖøÃÒý½ÅΪ¸´ÓÃÊä³ö¹¦ÄÜ,Êä³öTIM1 CH1µÄPWMÂö³å²¨ÐÎ
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH1