| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 嵌入式 -> STM32控制电机梯形加减速的较为简单的实现方案 -> 正文阅读 |
|
|
[嵌入式]STM32控制电机梯形加减速的较为简单的实现方案 |
|
??写这个的目的,主要是想给同是第一次做这方面功能,但网上看了很多例子,却还是无从下手编写程序的你分享一下我的经验,因为我当时也对这方面不了解,网上看了很多,但感觉不太适合。 ????我接触到电机控制也是因为我目前的公司是一家国产PLC公司,需要仿照三菱的高速脉冲输出指令,我来此公司之前,公司这一块功能一直做的不是很好,原先的实现方式是使用STM32的定时器更新中断处理中去改变脉冲频率,会出现以下问题:
????解决上述问题的方案
接下来讲如何通过改变CCR的值去实现不同频率的脉冲 ????通过下图可以看出,首先TIM_OC设置为翻转模式,然后将TIM的PSC设置为不分频,TIM的ARR设置成0xFFFFFFFF,TIM的计数器从0计数到0xFFFFFFFF,在CNT计数的过程中我们去改变CCR的值,每当CNT计数到CCR值便会翻转,然后通过DMA填入新值,当CNT计数到新的CCR值再次翻转就可实现脉冲的输出。
软件设计的流程 主要介绍了整一个实现脉冲输出的CCR值计算,并说明双缓存填装CCR数值是如何操作的,下图可以看出带有加减速的脉冲分了四段做处理分别为加速处理段,匀速处理段,减速处理段和停止。
DMA双缓存处理过程 下图黑色箭头在脉冲功能指令开始过程中只会执行一次,黄色箭头一直循环处理缓存1或缓存2,直到脉冲输出停止处理双缓存。
具体实现方式工程文件链接地址: https://download.csdn.net/download/qq_34571528/20157629 |
|
|
| 嵌入式 最新文章 |
| 基于高精度单片机开发红外测温仪方案 |
| 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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/1 5:35:59- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |