嵌入式开发学习日志33——stm32之PWM舵机简单项目

通过PWM输出控制舵机不同角度的转动,这是PWM经典的应用场景,本章就用代码展开讲讲。

这个项目需要用一个要求20ms的舵机,接下来就从最开始的代码看起。

头文件写法还是和以前一样,不过这一次还要加入舵机的应用函数。

源文件部分,还是先开启需要用到的时钟,这里要用到PA1引脚,因此开启GPIOA时钟,由于之后要用到复用输出模式,所以还要开启AFIO时钟。

而GPIO初始化模块的代码还是和之前写过的一样。

至于TIM2定时器模块,在初始化时没有采用上次手动输入参数的形式,由于项目的目标明确,所以先计算出pwm的频率。

舵机的周期是20ms,那么取倒数之后就是所需pwm频率50hz,根据pwm的频率计算公式50=72MHz/(PSC+1)/(ARR+1);为计算方便的数值,PSC取71,ARR+1取20k。

解决完定时器模块的初始化后,设置PWM的工作模式,Mode这里就选择最常用到的PWM1模式;极性设置polarity设置为高电平;而至于脉冲,先设置为0,之后再对输出比较通道CH2进行初始化。

就像之前说过的,这里需要手动使能(开启)预装载寄存器,最后开启定时器。

万事俱备后,就要进行舵机的配置,而舵机旋转角度与CCR值之间的数学关系可以通过查阅资料获得,代码如下

在主函数中,直接通过按键按下的形式实现舵机角度的旋转,但是这里对底层代码进行讲述,main函数中的部分暂时不讲。

相关推荐
通信小呆呆4 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick4 天前
自动对焦学习-3
人工智能·学习·计算机视觉
✎ ﹏梦醒͜ღ҉繁华落℘4 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Daisy Lee4 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e5 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨5 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
u152109648495 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015005 天前
RS485 总线详解
单片机·嵌入式硬件
cqbzcsq5 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息