完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用定时器触发adc采集 使用dma传输 在dma传输完成中断中更换HAL_ADC_Start_DMA的目标地址来重新启动adc的传输,但是在中断中使用HAL_ADC_Start_DMA时没有反应,单步调试中进入中断后正常跑完了HAL_ADC_Start_DMA,但是无法再次进入dma传输完成中断,同时第二次启动的HAL_ADC_Start_DMA的目标数组也没有把数据写进去,有大哥有头绪嘛?
|
|
相关推荐
2个回答
|
|
你在dma传输完成中断里做更换HAL_ADC_Start_DMA的目标地址的操作之前,先不妨对DMA做下复位,运行下类似这个HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)的函数。{然后再对其做初始化。
|
|
|
|
可能有几种原因导致无法进行第二次触发:
1. 初始化问题:确认在第一次启动ADC之前,是否正确初始化了ADC和DMA。例如,是否设置了正确的通道、DMA模式、数据长度等。 2. 资源释放问题:在第一次完成DMA传输后,需要确保正确地释放相关资源,以便可以重新设置并启动DMA传输。例如,确认是否正确地停止DMA、重置ADC等。 3. 中断优先级问题:检查ADC和DMA的中断优先级是否正确设置。确保DMA的中断优先级高于ADC,以便能够在DMA传输完成中断中重新设置和启动ADC的DMA传输。 4. 冲突问题:确保没有其他部分修改了ADC和DMA相关的寄存器,导致无法正常触发第二次传输。在使用HAL库时,请确保与其他底层驱动程序或直接对寄存器操作的代码没有冲突。 如果以上解决方案都没有解决问题,建议检查一下文档中的硬件配置和代码实现是否正确,并尝试单步调试以确定出现问题的具体位置。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1801 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
579浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 13:18 , Processed in 0.671592 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号