完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用DMA传PWM脉冲数,需要发指定数量的脉冲数(10,200,500,1000,2000...)。之前发脉冲的的时间没有限制。然后调试发脉冲个数没问题。后面加上限定每1ms分别发这些脉冲。发10个或200个是没问题。然而在发500或1000个脉冲的时候,多了1个脉冲,发2000个脉冲多了3个脉冲数。而且这多的脉冲是标准的脉冲,而不是不完整的脉冲。请问为什么前面发10个或200个是没问题,然而后面的脉冲数多了就会存在多发脉冲的情况?改了优先级试过没用。
|
|
相关推荐
2个回答
|
|
DMA能决定你每次发送脉冲占空比,但是决定不了DMA的个数。到DMA为计数器为0时,如果产生中断到处理的时间长与脉冲周期数,就会发生这样的现象,也就是当处理的速度慢了。简单一点,可以把DMA缓冲区后面多添加几个大于ARR的值,帮你的程序拖延一些时间,掩护中断中断程序
|
|
|
|
出现这个问题的可能原因有几个:
1. 处理器时钟频率或PWM频率的不准确: 如果处理器时钟频率或者PWM的频率不准确,会导致脉冲数不准确。可以检查时钟源和计时器的配置是否正确,并确保时钟源的精确性。 2. DMA传输速度和脉冲数的不匹配: DMA传输速度过快或过慢,可能会导致脉冲数不准确。可以尝试调整DMA传输速度,使其与脉冲数匹配。 3. DMA传输过程中中断的影响: 如果在DMA传输过程中发生了中断,可能会导致脉冲数不准确。可以检查中断的优先级和中断处理程序是否正确,并确保中断不会干扰DMA传输。 4. DMA缓冲区的大小不够: 如果DMA缓冲区的大小不够,可能会导致一部分数据被丢弃或者不完整。可以检查DMA缓冲区的大小是否足够容纳所需的脉冲数。 5. DMA传输的数据源的准确性: 如果DMA传输的数据源不准确,可能会导致脉冲数不准确。可以检查数据源的产生方式和数据的准确性。 您可以按照上述方法逐一排查,找出问题所在并进行修复。如果问题仍然存在,可能需要进一步调试和分析代码,或者联系芯片厂商或开发板供应商寻求帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1683 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1582 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1627 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
675浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
538浏览 3评论
558浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
526浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 03:04 , Processed in 1.157284 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号