STM32f4标准库的舵机控制
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
对于stm32来说,我们可以使用定时器PWM输出来控制舵机。
第一步区分时钟
一个是高速时钟,一个是低速时钟
具体看STM32的时钟介绍。
RCCAPB2负责AD,I/O,串口1,高级定时器TIM1\TIM8
RCCAPB1负责DA,串口2,3,4,5,普通定时器TIM, USB , IIC , CAN
接下来以TIM8为例子,搭载的APB2为84M
第二步初始化时钟
//初始化TIM8搭载的APB2时钟
RCC_APB2PeriphClockCmd ( RCC_APB2Periph_TIM8, ENABLE );
//初始化复用于TIM8的GPIO时钟
RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_GPIOC );
第三步初始化GPIO复用配置
//初始化gpio复用配置
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;//对应通道3/4
GPIO_InitStructure.GPIO_Mode