概述
舵机开发整体思路:
- 使用STM32裸机开发舵机,使得舵机可以实现基本的转动功能
- 封装接口,使得主函数调用一个函数,传入指定角度即可控制舵机旋转
- 分层硬件与设备,建立一个STM32的硬件控制文件和一个舵机角度算法文件,使得舵机角度控制可以容易的移植到其他的芯片上。
代码层级关系:
舵机控制裸机实现
1、舵机控制原理
舵机的型号为sg90,它有3根线:黄色为PWM信号线,红色VCC接3.3v,棕色GND
实物图如下:
舵机转动的角度与PWM信号的高电平时间有关,角度范围为0~180°
该舵机的PWM信号要求为50Hz,高电平时间与角度关系如下:
2、配置STM32的PWM输出
使用STM32CubeMx对STM32进行PWM输出的初始化配置。
这里使用的是STM32F103C8T6的TIM3_CH1作为PWM输出端口,对应引脚为PA6。
分频系数PSC配置为72-1
其余的基本配置为:使用外部晶振8MHz,最终输入到定时器的时钟频率为72MHz
3、编写STM32控制PWM文件
3.1 文件及公式
在KEIL中创建两个文件my_pwm.c和my_pwm.h。这两个文件主要实现硬件的控制,向上提供硬件控制的接口。</