STM32H747复刻DCMI_Snapshot示例遇DMA溢出中断异常求助
问题:STM32H747 DCMI复刻代码触发DMA溢出中断,MISR值与官方示例不符
我复刻STM32H747开发板的DCMI_Snapshot示例代码时,程序触发了DMA溢出中断。调试发现官方示例中isr_value值为25,而我的代码运行时该值为26。
相关中断处理代码如下:
uint32_t isr_value = READ_REG(hdcmi->Instance->MISR); /* Overflow interrupt management ********************************************/ if ((isr_value & DCMI_FLAG_OVRRI) == DCMI_FLAG_OVRRI) { /* Clear the Overflow flag */ __HAL_DCMI_CLEAR_FLAG(hdcmi, DCMI_FLAG_OVRRI); /* Update error code */ hdcmi->ErrorCode |= HAL_DCMI_ERROR_OVR; /* Change DCMI state */ hdcmi->State = HAL_DCMI_STATE_ERROR; /* Set the overflow callback */ hdcmi->DMA_Handle->XferAbortCallback = DCMI_DMAError; /* Abort the DMA Transfer */ (void)HAL_DMA_Abort_IT(hdcmi->DMA_Handle); }
我已尝试以下操作,但问题仍未解决:
- 在IOC文件中切换中断配置
- 启用所有中断
- 修改字节宽度(默认设为字节)
内容的提问来源于stack exchange,提问作者Stack_k
相关产品推荐
相关产品推荐

