OpenEdv-开源电子网

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

DMA传PWM的脉冲数不准确问题

[复制链接]

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
发表于 2020-9-4 15:32:47 | 显示全部楼层 |阅读模式
30金钱
本帖最后由 CKJJJJ 于 2020-9-5 17:27 编辑

用DMA传PWM脉冲数,需要发指定数量的脉冲数(10,200,500,1000,2000...)。之前发脉冲的的时间没有限制。然后调试发脉冲个数没问题。后面加上限定每1ms分别发这些脉冲。发10个或200个是没问题。然而在发500或1000个脉冲的时候,多了1个脉冲,发2000个脉冲多了3个脉冲数。而且这多的脉冲是标准的脉冲,而不是不完整的脉冲。请问为什么前面发10个或200个是没问题,然而后面的脉冲数多了就会存在多发脉冲的情况?改了优先级试过没用。附件上有程序,请大佬帮忙分析。

这段是发500个脉冲

这段是发500个脉冲

这里就刚好1ms,但后面会多一个脉冲

这里就刚好1ms,但后面会多一个脉冲

PWM Encoder.zip

314.42 KB, 下载次数: 16

波形分析.zip

12.53 KB, 下载次数: 3

用逻辑分析仪抓到的波形

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

使用道具 举报

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
 楼主| 发表于 2020-9-4 15:39:06 | 显示全部楼层
补充一下,每次在发脉冲前我都会操作这些。
QQ截图20200904153746.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-9-7 02:01:41 | 显示全部楼层
帮顶
回复

使用道具 举报

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
 楼主| 发表于 2020-9-11 17:57:26 | 显示全部楼层
F103的外设频率不是最高能输出36MHz的么?怎么这才跑到1M的脉冲就多产生脉冲数了?改了下中断里面判断DMA完成标志的库函数为寄存器,500个脉冲数就正常了。另外移植到407去测试,结果1000个脉冲也正常,后面的都是会多。感觉是进中断清TIM->CCRx慢了导致,但怎样去验证从DMA传完到进中断处理这段的时间是不是大于一个脉冲的周期,才导致多出一个这样的???有没有大佬指点一下?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-17 07:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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