Interrupt STM32 HAL DMA中断不触发

Interrupt STM32 HAL DMA中断不触发,interrupt,stm32,dma,hal,Interrupt,Stm32,Dma,Hal,我在上STM32 HAL课程 在“直接内存访问(DMA)”部分中,DMA传输完成后不会触发中断。 在轮询模式下,一切正常。 我使用的是Nucleo-F746ZG,我的代码在github上: 我可以检查什么来解决这个问题 设置回调函数时,它是否需要在调用HAL_DMA_Init之前执行? 或者可以在使用HAL_DMA_Start启动DMA传输之前完成吗? 另外,我确实看到了&有时候,我尝试了函数地址,但没有什么不同。 应该使用什么,和或不 /* Setup callbacks, not sure

我在上STM32 HAL课程

在“直接内存访问(DMA)”部分中,DMA传输完成后不会触发中断。 在轮询模式下,一切正常。 我使用的是Nucleo-F746ZG,我的代码在github上:

我可以检查什么来解决这个问题

设置回调函数时,它是否需要在调用HAL_DMA_Init之前执行? 或者可以在使用HAL_DMA_Start启动DMA传输之前完成吗? 另外,我确实看到了&有时候,我尝试了函数地址,但没有什么不同。 应该使用什么,

/* Setup callbacks, not sure this can be done without HAL_DMA_Init */
hdma_memtomem_dma2_stream0.XferCpltCallback = &XferCpltCallback;

嗨,我监控DMA中断标志如下:在Keil uVision中,在调试模式下,我选择了菜单→​ ​外围设备→​ 系统查看器→​ DMA→​ DMA2。启动DMA传输后(HAL_DMA_启动​), 我可以看到在LISR:TCIF0-Stream 0 transfer complete interrupt flag中设置了正确的标志​ HTIF0-流0半传输中断标志​ (也应如此)但ISR XferCpltCallback​ 没有触发。我正在努力让它正常工作。有人知道如何进一步处理这个问题吗?祝你好运,杰克。现在我也在STM32F407VG发现板上尝试了这个方法,在那里中断也不会触发。因此,我认为这不是HAL中的错误。我想我一定是做错了什么。我解决了问题并修复了代码(在github上),在尝试使用DMA中断时,我调用了HAL_DMA_Start()函数,而不是HAL_DMA_Start_IT()函数。为什么不用解决方案回答您自己的问题呢?如果我没有弄错的话,您可以这样做。这样,问题看起来就结束了。