当前位置: 首页 > news >正文

STM32:PWM驱动舵机

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

 

 

#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.舵机单独封装代码部分:

 

 

 

#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呼吸灯基本相似,只是单独封装一个函数,并单独计算/调用角度,达到要求。

相关文章:

  • asia域名网站可靠吗/优化器
  • 网站建设五站合一/今日油价92汽油价格表
  • web前端开发工程师招聘要求/优化器
  • 网站建设前台功能/宁波seo公司网站推广
  • 全包家装原创装修网站/搜索引擎营销例子
  • 北京制卡厂家做卡公司北京制卡网站_北京制卡_北京 去114网/网络推广吧
  • 云物理机ironic对接ceph云盘ceph-iscsi-gateway
  • 阿里巴巴面试题- - -多线程并发篇(四十一)
  • C中常见的字符函数和字符串函数讲解
  • SpringBoot正常启动后,却无法访问
  • 不容错过,零基础入门 Python学习路线最佳实践
  • tesseract使用时遇到的问题:tesseract is not installed or it‘s not in your PATH
  • 【一篇就够】从输入网址(URL)到页面加载的全过程
  • 你可能不知道的CSS特征查询
  • JAVA练习题32:学生管理系统升级版
  • 【八组输入输出你都了解多少】
  • Hive数据库操作
  • [创业之路-42] 创业是只有一小部分人活下来的游戏,探究创业失败的20个主要原因与提高成功率