完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1,DMA设置为循环模式,发送70000个PWM脉冲,第一次DMA发送65535(DMA一次不超过65535),第二次DMA发送4465(第一次DMA发送完成中断服务函数中调用第二次DMA发送)。
问题:第一次DMA发送正常,第二次DMA实际发送65535个,并非是4465个。 2,DMA设置为单次模式,发送70000个PWM脉冲,第一次DMA发送65535(DMA一次不超过65535),第二次DMA发送4465(第一次DMA发送完成中断服务函数中调用第二次DMA发送)。 问题:第二次DMA发送后一直没有进入DMA发送中断函数。 参考DMA发送函数:HAL_tiM_PWM_Start_DMA |
|
相关推荐
10个回答
|
|
|
|
|
|
第一次配置65535,第一次DMA完成中断服务函数里面重新使用DMA发送剩下的数据(第一次与第二次除了发送个数不一样,其他DMA配置都一样,重新配置是重新调用DMA配置相关函数吗?),谢谢 |
|
|
|
mxvuwyerw 发表于 2019-1-4 10:12 既然配置为65535,当然就一直到65535才中断。 楼主真的应该配置成35000,中断2次较合理。 |
|
|
|
我可能没有描述清楚,我发70000个PWM肯定需要两次中断,只是第一次中断完成后继续发送下次数据存在问题,配置城35000也存在一样问题。 |
|
|
|
既然配置为65535时:第一次DMA发送正常,第二次DMA实际发送65535个。那就是说如果配置35000时一定是到35000就中断了,刚好也是2次中断,你说的“只是第一次中断完成后继续发送下次数据存在问题”是指什么问题?可以检查一下数据缓冲区的设置是否正确。 |
|
|
|
第二次不管发送多少(小于65535时,包括35000),实际都会发送65535个才会进入发送中断。第二次中断肯定重新配置了。
|
|
|
|
感谢,已解决,使用普通TIM + DMA + HAL精确脉冲个数输出时,在DMA中断服务函数中如果继续使用DMA方式发送,需要先调用HAL提供相关中断服务函数处理,然后进行DMA发送。 |
|
|
|
pwm的个数是自己定义的
|
|
|
|
这个都不知道?
|
|
|
|
还是不要提这些简单问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:45 , Processed in 1.067636 second(s), Total 92, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号