STM32:PWM驱动舵机

简介: STM32:PWM驱动舵机

1.主函数(main.c)代码部分:


0381741df4d84745b2bfe24c4ed5793e.png

93f04e7905f149b1b41ba1e544981689.png


#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Servo.h"
#include "Key.h"
uint8_t KeyNum;
float Angle;
int main(void)
{
    OLED_Init();
    Servo_Init();
    Key_Init();
    OLED_ShowString(1, 1, "Angle:");
    while (1)
    {
        KeyNum = Key_GetNum();
        if (KeyNum == 1)
        {
            Angle += 30;
            if (Angle > 180)
            {
                Angle = 0;
            }
        }
        Servo_SetAngle(Angle);
        OLED_ShowNum(1, 7, Angle, 3);
    }
}


2.舵机单独封装代码部分:


0190d9dd8b024de2998febac367728eb.png

cc5e5a110a0d4f42956765ef00cf6d43.png

#include "stm32f10x.h"                  // Device header
#include "PWM.h"
void Servo_Init(void)
{
    PWM_Init();
}
void Servo_SetAngle(float Angle)
{
    PWM_SetCompare2(Angle / 180 * 2000 + 500);
}
#ifndef __SERVO_H
#define __SERVO_H
void Servo_Init(void);
void Servo_SetAngle(float Angle);
#endif

3.设计思路:与PWM驱动LED呼吸灯基本相似,只是单独封装一个函数,并单独计算/调用角度,达到要求。

相关文章
小巴陪你搞技术-STM32驱动1602时钟
小巴陪你搞技术-STM32驱动1602时钟
|
12天前
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
|
14天前
【STM32】通过RTThread驱动W25QXXX
【STM32】通过RTThread驱动W25QXXX
|
14天前
STM32F103驱动oled显示屏
STM32F103驱动oled显示屏
29 0
|
14天前
STM32控制SG90舵机原理及代码
STM32控制SG90舵机原理及代码
67 1
|
14天前
|
传感器