stm32 舵机 cubemx

文章目录

  • 前言
  • 一、cubemx配置
  • 二、代码
    • 1.serve.c
    • 2.serve.h
    • 3.主函数
  • 总结


前言

stm32对舵机进行控制,很简单直接一个pwm就可以实现
pwm的周期是50HZ占空比分别对应

一个0.5ms的高电平对应于0度
一个1.5ms的高电平对应于90度
一个2.5ms的高电平对应于180度
因此,您可以通过改变PWM信号的占空比来改变舵机的角度。占空比是PWM信号的高电平时间与PWM信号的总周期之比。在这里,PWM信号的总周期通常是20ms(对应于50Hz的频率),所以:
对于0度,占空比是0.5ms/20ms = 2.5%
对于90度,占空比是1.5ms/20ms = 7.5%
对于180度,占空比是2.5ms/20ms = 12.5%


一、cubemx配置

在这里插入图片描述
以我的c8t6为例
时钟频率是72MHZ
为了得到50HZ就设定为720-1 和 2000-1
其中2000-1的arr值后面还要用到。

二、代码

1.serve.c

#include "serve.h"Servo ser_1;void servo_init(Servo* servo, TIM_HandleTypeDef* htim, uint32_t channel, uint16_t arr) 
{servo->htim = htim;servo->channel = channel;servo->arr = arr;HAL_TIM_PWM_Start(htim,channel);	}void set_servo_angle(Servo* servo, uint8_t angle) 
{if (angle > 180) {// Angle out of rangeangle = 180;}if(angle<0){angle = 0;}servo->angle = angle;uint16_t pulse_length = (uint16_t)(servo->arr * 1.0 / 20 * (1.0 + angle / 180.0));__HAL_TIM_SET_COMPARE(servo->htim, servo->channel, pulse_length);
}

2.serve.h

typedef struct {TIM_HandleTypeDef* htim;uint32_t channel;uint16_t arr;uint8_t angle;
} Servo;extern Servo ser_1;void servo_init(Servo* servo, TIM_HandleTypeDef* htim, uint32_t channel, uint16_t arr) ;
void set_servo_angle(Servo* servo,uint8_t angle) ;

3.主函数

	servo_init(&ser_1,&htim1,TIM_CHANNEL_1,2000);set_servo_angle(&ser_1,180);

总结

over

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/21498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频--DTMF信号发送及检测

参考资料 https://zh.wikipedia.org/wiki/%E5%8F%8C%E9%9F%B3%E5%A4%9A%E9%A2%91https://www.cnblogs.com/lijingcheng/p/4454932.html 1. DTMF是什么 1.1 DTMF定义 双音多频信号&#xff08;英语&#xff1a;Dual-Tone Multi-Frequency&#xff0c;简称&#xff1a;DTMF&a…

mac 下用brew快速安装CommandLineTools

有时候用git 就会提示安装CommandLineTools &#xff0c;xcode太大又不想安装&#xff0c;怎么办呢我们可以试下下面的方式 什么是Brew&#xff1a; Brew是Mac OS X下的一个包管理器&#xff0c;可以方便地安装、升级和卸载很多常用的软件包 在mac下如何安装呢&#xff1a; …

爆肝整理,Postman接口测试-参数关联实战(详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口测试什么时候…

AlexNet卷积神经网络-笔记

AlexNet卷积神经网络-笔记 AlexNet卷积神经网络2012年提出 测试结果为&#xff1a; 通过运行结果可以发现&#xff0c; 在眼疾筛查数据集iChallenge-PM上使用AlexNet&#xff0c;loss能有效下降&#xff0c; 经过5个epoch的训练&#xff0c;在验证集上的准确率可以达到94%左右…

leetcode 738. 单调递增的数字

2023.8.4 这题用暴力法会超时&#xff0c;我就没试了&#xff0c;采用了个挺巧的方法&#xff0c;为了方便需要先将整数n转换为字符串的形式&#xff0c;然后从后向前遍历&#xff0c;当两个数字非递增时&#xff0c;将前一个数字--&#xff0c;后一个数字的位置记录在index中&…

以技术驱动反欺诈,Riskified 为企业出海保驾护航

如今&#xff0c;全球对于线上消费的需求日益增长&#xff0c;各类新型支付方式也层出不穷。在国内&#xff0c;线上支付有着较为完善的法律及监管条例&#xff0c;格局基本已定型。但对于出海商家而言&#xff0c;由于不同国家和地区的支付规则和监管机制不同&#xff0c;跨境…

云运维工具

企业通常寻找具有成本效益的方法来优化创收&#xff0c;维护物理基础架构以托管服务器和应用程序以提供服务交付需要巨大的空间和前期资金&#xff0c;最重要的是&#xff0c;物理基础设施会产生额外的运营支出以进行定期维护&#xff0c;这对收入造成了沉重的损失。 云使企业…

聊聊x86计算机启动发生的事

作者&#xff1a;小牛呼噜噜 | https://xiaoniuhululu.github.io 大家好&#xff0c;我是呼噜噜&#xff0c;最近在看linux早期内核0.12的源码&#xff0c;突然想到一个困扰自己好久的问题&#xff1a;当我们按下电源键&#xff0c;计算机发生了什么&#xff1f;神秘地址0x7C00…

【1.2】Java微服务:SpringCloud概论

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 微服务 ✨特色专栏&#xff1a; 知识分享 &#x…

近5千情感两性职场个性测试文章ACCESS\EXCEL

这个数据库是将《1千条两性测试文章大全》《1千6个性测试文章大全》《1千多条职场测试文章大全》《1千条情感测试文章大全》四个数据库合并到一个数据表中&#xff0c;属于是文章型的心理测试内容&#xff0c;用在发公众号或者抖音等多媒体上与粉丝互动都是个不错的选择。 分类…

【Pycharm2022.2.1】python编辑器最新版安装教程(包含2017-2022的所有版本win/mac/linux)

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 永久安装 Pycharm&#xff08;2017-2022的win/mac/linux所有版本&#xff09;/ IntelliJ IDEA也可以, 按照本文教程所写的&#xff0c;具体步骤跟着下面的图文教程一步一步来就行&#xff0c;一分钟即可搞定&#xff0c;过…

Windows Server 2012 R2 安装 Oracle RAC 11g R2

Windows Server 2012 R2 安装 Oracle RAC 11g R2 环境准备安装系统设置虚拟网络配置虚拟机网卡开机进行系统配置关闭防火墙设置网络系统高级设置修改注册表修改计算机名称设置账户控制RAC1 和 RAC2 的磁盘共享修改 hosts同步时间在 RAC1 RAC2 DATA 中安装 .net3.5在 DATA 中搭建…

MySQL常见问题处理(三)

MySQL 常见问题解决 夕阳留恋的不是黄昏&#xff0c;而是朝阳 上一章简单介绍了MySQL数据库安装(二), 如果没有看过, 请观看上一章 一. root 用户密码忘记&#xff0c;进行重置操作 复制内容来源链接: https://blog.csdn.net/weixin_48927364/article/details/123556927 一.…

React 之 Redux - 状态管理

一、前言 1. 纯函数 函数式编程中有一个非常重要的概念叫纯函数&#xff0c;JavaScript符合函数式编程的范式&#xff0c;所以也有纯函数的概念 确定的输入&#xff0c;一定会产生确定的输出 函数在执行过程中&#xff0c;不能产生副作用 2. 副作用 表示在执行一个函数时&a…

《江苏经济报》报道 | 光影逐梦,“苏”写影视工业“诗和远方”企业新闻

近日&#xff0c;《江苏经济报》就蓝海创意云影视动画渲染服务进行了独家专题报道。 云上生产&#xff0c;数字技术创新电影工业流程 三年疫情&#xff0c;不仅阻隔了电影工业产业链上下游资源的对接协作&#xff0c;也放大了产业在地域和行业中人财物资源的不平衡。太湖湖畔的…

【分布式系统】聊聊系统监控

对于分布式系统来说&#xff0c;出现故障的是常有的事情&#xff0c;如何在短时间内找到故障的原因&#xff0c;排除故障是非常重要的&#xff0c;而监控系统是就像系统的眼睛可以通过分析相关数据&#xff0c;进一步管理和运维整个分布式系统。 监控系统的的基本功能包含 全…

使用 Simulink 进行 STM32 编程

目录 介绍 所需材料 步骤 1&#xff1a;在MATLAB中设置STM32-MAT软件路径步骤 2&#xff1a;在STM32CubeMX中创建一个项目步骤 3&#xff1a;配置时钟和 GPIO 引脚步骤 4&#xff1a;项目经理并生成代码步骤 5&#xff1a;在 Simulink 中创建模型步骤 6&#xff1a;在模型中插…

PHP-简单项目引起的大麻烦--【白嫖项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页小插曲小插曲完了么&#xff1f;必要的项目知识PHPThinkPHPThinkPHP的MVCThinkTemplateThinkPHP 6和ThinkPHP 5 phpStudy 设置导数据库展示页面数据库表结构项目目录如图…

如何用arduino uno主板播放自己想要的曲子。《我爱你中国》单片机版本。

目录 一.效果展示 二.基本原理 三.电路图 四.代码 一.效果展示 arduino播放《我爱你中国》 二.基本原理 利用arduino uno单片机实现对蜂鸣器振动频率的调节&#xff0c;基于PWM控制系统通过代码实现控制。 三.电路图 四.代码 //main.uno #define Buzzer 2int PotBuffer …

paddlenlp:社交网络中多模态虚假媒体内容核查

初赛之环境配置篇 一、背景二、任务三、数据集1、初赛阶段2、评分标准 四、环境操作五、写在最后 一、背景 随着新媒体时代信息媒介的多元化发展&#xff0c;各种内容大量活跃在媒体内中&#xff0c;与此同时各类虚假信息也充斥着社交媒体&#xff0c;影响着公众的判断和决策。…