OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5098|回复: 6

STM32F1 HAl库 中断模式下输出比较模式生成PWM问题

[复制链接]

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-5-14
在线时间
19 小时
发表于 2021-6-15 09:10:08 | 显示全部楼层 |阅读模式
本帖最后由 xhsycqcssllw 于 2021-6-15 10:08 编辑

想请教一下各位大佬,我之前用库函数版本做了输出比较模式产生PWM从而能很好控制步进电机;
现在想用一下HAL库来写一个控制步进电机的程序,但是调了几天也没调出来,波形就像这样

刚开始这段还行,可是后面就没波形输出了。在keil上仿真看,4路的CCRx的没更新,貌似
Toggle_Pulse[0] + count[0]这个两个值加起来超了0XFFFF,但是我用库函数也是这样的,

程序就能很好的执行,但是HAL库就不行了!!!

各位大佬,有知道问题,请指点一下,谢谢~~~~~~~~~~~
下面附一个stm32 Cubemx 生成的这份源代码!!

还望有知道问题在那点的大佬,指点指点

STM32_HAL_Demo.rar

9.51 MB, 下载次数: 21

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14410
金钱
14410
注册时间
2018-8-3
在线时间
1156 小时
发表于 2021-6-15 10:19:29 | 显示全部楼层
用你设置的CCRx的值去余一下你的ARR  比如(Toggle_Pulse[0] + count[0])%ARR
回复 支持 1 反对 0

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-5-14
在线时间
19 小时
 楼主| 发表于 2021-6-15 09:11:42 | 显示全部楼层
本帖最后由 xhsycqcssllw 于 2021-6-15 09:33 编辑

为了方便我把一些 源码截图
这个是keil 软件的仿真波形



微信图片_202106111737233.png
微信图片_202106111737232.png
微信图片_202106111737231.png
微信图片_20210615091637.png
efd0e418de29b1f26319847c6a65c3c.png
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-5-14
在线时间
19 小时
 楼主| 发表于 2021-6-15 13:33:27 | 显示全部楼层
本帖最后由 xhsycqcssllw 于 2021-6-15 13:57 编辑
翼行园子 发表于 2021-6-15 10:19
用你设置的CCRx的值去余一下你的ARR  比如(Toggle_Pulse[0] + count[0])%ARR

嗯  好的 谢谢 我马上试试


1623736615(1).jpg
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-5-14
在线时间
19 小时
 楼主| 发表于 2021-6-15 13:35:23 | 显示全部楼层
翼行园子 发表于 2021-6-15 10:19
用你设置的CCRx的值去余一下你的ARR  比如(Toggle_Pulse[0] + count[0])%ARR

我还想问问,如果单看程序上的配置这些有其他的错误?
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-5-14
在线时间
19 小时
 楼主| 发表于 2021-6-15 13:58:52 | 显示全部楼层
翼行园子 发表于 2021-6-15 10:19
用你设置的CCRx的值去余一下你的ARR  比如(Toggle_Pulse[0] + count[0])%ARR

可以了,非常感谢   我想问问这个求一下余,这个是什么原理?
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-5-14
在线时间
19 小时
 楼主| 发表于 2021-6-15 14:22:51 | 显示全部楼层
翼行园子 发表于 2021-6-15 10:19
用你设置的CCRx的值去余一下你的ARR  比如(Toggle_Pulse[0] + count[0])%ARR

非常感谢大佬,我这边已经想明白了为什么要求余了。我现在只是觉得有点坑,标准库函数,这个位置是可以不用求余的,到了HAL库,就必须得求余了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 18:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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