| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32CubeMX笔记(9)--定时器生成PWM特定波形,控制舵机转动 -> 正文阅读 |
|
[嵌入式]STM32CubeMX笔记(9)--定时器生成PWM特定波形,控制舵机转动 |
定时器生成PWM特定波形,控制舵机转动1、舵机相关知识1.1 相关舵机的知识点:
1.2 舵机的控制:
为了更好地理解其信号,和编写代码,把PWM关键点转换如下: PWM信号周期: 20000us 故在设置定时器参数时 设置计数值为20000对应PWM信号周期:20000us;
特别地说明: 把所有ms值, 转换为us值, 是为了方便代码的编写和理解 2、STM32CubeMX引脚设置和代码生成2.1 相关STM32CubeMX生成代码配置如下:相关外部晶振的设置参考:STM32CubeMX笔记(5)–定时器中断 1、在STM32CubeMX软件右侧: 定时器频率=时钟频率/(预分频*计数值) T i m e s ( H z ) = I n t e r n e l C l o c k ( M H z ) P S C ? C o u n t e r . Times(Hz) = \frac{InternelClock(MHz)}{PSC*Counter}. Times(Hz)=PSC?CounterInternelClock(MHz)?. 下面图中设置的舵机的频率为50Hz,使用定时器8生成PWM波 其中内部时钟频率为APB1 预分频 设 置 生 成 的 频 率 = 72000000 72 ? 20000 = 50 H z 设置生成的频率= \frac{72000000}{72*20000}=50Hz 设置生成的频率=72?2000072000000?=50Hz 2、在STM32CubeMX软件右上角,点击GEBERATE CODE项,生成代码。 相关定时器的参数设置:(定时器8为例) 3、编写相关的C函数文件3.1、相关PWM函数开启:1)添加定时器8的通道1和通道2的PWM生成开启使能函数,放置于到
3.2、相关PWM占空比设置:2)通过类似如下的设置,即可设置定时器8的通道1和通道2的相关占空比寄存器,直接控制PWM的占空比输出
3.3、相关PWM占空比设置函数改进:3)将上述寄存器进行改进,整合出相关的函数文件
函数的引用效果如下: 以下两个代码片段的使用效果相同,如下。
进一步测试,将以下代码复制到主函数的循环中:
4、编译工程文件,使用ST-Link烧录,测试定时器中断将对应的通道输出接口连接上舵机的PWM控制线,进行相关转角的测试。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:25:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |