|
|
突然发现,MDMA进行读写QSPI的时候 写数据会多次进入MDMA完成中断,但是读就不会
中断函数:
[
if(__HAL_MDMA_GET_FLAG(&hmdma_quadspi_fifo_th,MDMA_IT_CTC) == MDMA_IT_CTC)
{
// QSPI 写的时候 要分页(256B)写,所以写完成dma会进入多次
static uint32_t cnt = 0;
cnt++;
myprintf("MDMA_IRQHandler: %d ",cnt);
hqspi.State = HAL_QSPI_STATE_READY;
//__HAL_MDMA_CLEAR_FLAG(&hmdma_quadspi_fifo_th,MDMA_IT_CTC);
}
/* USER CODE END MDMA_IRQn 0 */
HAL_MDMA_IRQHandler(&hmdma_quadspi_fifo_th);
】
串口信息:
Start DMA Write FLASH........
MDMA_IRQHandler: 1 MDMA_IRQHandler: 2 MDMA_IRQHandler: 3 MDMA_IRQHandler: 4 MDMA_IRQHandler: 5 MDMA_IRQHandler: 6 MDMA_IRQHandler: 7 MDMA_IRQHandler: 8 MDMA_IRQHandler: 9 MDMA_IRQHandler: 10 MDMA_IRQHandler: 11 MDMA_IRQHandler: 12 MDMA_IRQHandler: 13 MDMA_IRQHandler: 14 MDMA_IRQHandler: 15 MDMA_IRQHandler: 16 MDMA_IRQHandler: 17
98 98
DMA 写长度:120 速度: 1.60618 KB/s
KEY_2_UP
[2025-11-25 23:06:54.711]
RX:
Start DMA Read FLASH... .
MDMA_IRQHandler: 18
98 98
读长度:120 读速度: 59.625 KB/s Err:0.00
KEY_3_UP
[2025-11-25 23:07:19.356]
RX:
Start DMA Write FLASH........
MDMA_IRQHandler: 19 MDMA_IRQHandler: 20 MDMA_IRQHandler: 21 MDMA_IRQHandler: 22 MDMA_IRQHandler: 23 MDMA_IRQHandler: 24 MDMA_IRQHandler: 25 MDMA_IRQHandler: 26 MDMA_IRQHandler: 27 MDMA_IRQHandler: 28 MDMA_IRQHandler: 29 MDMA_IRQHandler: 30 MDMA_IRQHandler: 31 MDMA_IRQHandler: 32 MDMA_IRQHandler: 33 MDMA_IRQHandler: 34 MDMA_IRQHandler: 35
25 25
DMA 写长度:120 速度: 1.61036 KB/s
KEY_2_UP
[2025-11-25 23:07:23.641]
RX:
Start DMA Read FLASH... .
MDMA_IRQHandler: 36
25 25
读长度:120 读速度: 59.716 KB/s Err:0.00
KEY_3_UP
[2025-11-25 23:07:31.243]
RX:
Start Read FLASH... .
25 25
读长度: 120 读速度: 5274.725 KB/s Err:0.00
如果,MDMA写的时候就是按照W25Q256 一页一页的写的话 120长度 应该只有一个MDMA中断,也不符合呀!!
有大佬碰到这问题吗?可能是什么原因呢?
|
|