完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在用的是STM32L492 DMA2, 一共支持7个通道,其中ADC1,ADC3已经占用了DMA2 3/5两个通道。UART1之前采用中断方式,和ADC互不相关,程序运行正常。为了提高系统效率,现将UART1由中断改为DMA方式,占用了DMA2 6/7通道. 结果问题来了, ADC刷新变慢,UART1也经常丢包。个人感觉DMA2在这里是个瓶颈, 在多通道复用上可能有些问题没考虑到。请问哪位在DMA上有类似经验?
|
|
相关推荐
2个回答
|
|
你的ADC速度是多少的?DMA传输其实在和CPU争时间,如果太多在争导致排队有可能会阻塞。
|
|
|
|
STM32L492 DMA多通道复用后速度变慢的原因可能有以下几点:
1. DMA通道冲突:在使用多个DMA通道时,如果这些通道共享相同的硬件资源,可能会导致通道之间的冲突。这可能会降低DMA传输速度,甚至导致丢包。为了解决这个问题,可以尝试调整DMA通道的优先级,以确保关键任务(如ADC和UART1)能够优先执行。 2. DMA传输速率限制:STM32L492的DMA传输速率可能受到硬件限制。在多通道复用时,如果所有通道的传输速率总和超过了硬件的最大传输速率,可能会导致速度变慢。可以尝试降低某些通道的传输速率,以确保总传输速率不超过硬件限制。 3. CPU负载过高:在多通道复用时,CPU需要处理更多的中断和DMA传输任务。如果CPU负载过高,可能会导致DMA传输速度变慢。可以尝试优化程序代码,减少CPU的负担,以提高DMA传输速度。 4. 软件配置问题:在使用DMA时,需要正确配置DMA的相关参数,如源地址、目标地址、传输大小等。如果配置不当,可能会导致DMA传输速度变慢或丢包。请检查DMA的配置参数,确保它们正确无误。 5. 硬件问题:如果以上方法都不能解决问题,可能是硬件本身存在问题。可以尝试更换STM32L492芯片,或者使用其他型号的芯片进行测试。 总之,要解决STM32L492 DMA多通道复用后速度变慢的问题,需要从硬件和软件两方面进行排查和优化。希望这些建议对你有所帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
655浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
525浏览 3评论
540浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
512浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 19:14 , Processed in 0.660786 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号