硬汉嵌入式论坛

 找回密码
 立即注册
查看: 784|回复: 3
收起左侧

[TIMER] 控制步进电机输出可调频率以及可调数目的PWM方波

[复制链接]

7

主题

16

回帖

37

积分

新手上路

积分
37
发表于 2023-7-17 18:19:15 | 显示全部楼层 |阅读模式
驱动步进电机,之前使用HAL_TIM_PWM_Start_DMA()这个函数来开启PWM输出,可以改变定时器的CCR寄存器的值,从而可以控制PWM波的个数,实现了。     现在需要做S形加减速,就需要改变PWM的频率,即改变定时器的ARR的值从而改变PWM的频率。我也想使用DMA的方式来改变ARR寄存器的值,使用HAL_DMA_Start(&hdma_tim5_up,(uint32_t)&ARR_Data[101],(uint32_t)&TIM5->ARR,101);或者HAL_DMA_Start_IT(&hdma_tim5_up,(uint32_t)&ARR_Data[101],(uint32_t)&TIM5->ARR,101);都没能成功的将ARR_Data【】数组里的数据搬到ARR寄存器中。希望大家能给个建议。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2023-7-18 08:37:52 | 显示全部楼层
ARR有影子寄存器,设置立即更新。
回复

使用道具 举报

7

主题

16

回帖

37

积分

新手上路

积分
37
 楼主| 发表于 2023-7-20 09:41:35 | 显示全部楼层
eric2013 发表于 2023-7-18 08:37
ARR有影子寄存器,设置立即更新。

硬汉哥我没弄明白影子寄存器如何实现,但是我在定时器的更新中断里面每次改变ARR的值,现在是一个电机,能实现电机的S形加速,不知道电机多了会不会出问题
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2023-7-20 11:36:21 | 显示全部楼层
佳爷 发表于 2023-7-20 09:41
硬汉哥我没弄明白影子寄存器如何实现,但是我在定时器的更新中断里面每次改变ARR的值,现在是一个电机, ...

初始化的时候,有个结构体成员可以配置

下载 (4).png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 03:30 , Processed in 0.167204 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表