STM32H7 DCMI DMA传输错误
最近在尝试用NUCLEO板子读取DCMI的数据,现在DCMI的HSYNC和VSYNC中断都能正常进入,但是DMA传输会出错。 调试发现DMA的NDTR减少了1,然后TEIF被置1了,也就是在传输第一个数据的时候就出现了传输错误。工程文件是用CubeMX生成的,MCO2设置成了10MHz的XCLK输出,PCLK和HSYNC,VSYNC似乎都没有问题。程序也没有使用缓存,缓冲区对齐也尝试过了,还是会有同样的问题。看手册说DMA传输错误是下面这几种情况,但还是找不到问题在哪。
The transfer error interrupt flag (TEIF) is set when:
• A bus error occurs during a MDMA read or a write access
• The address alignment does not correspond to the data size
• The block size is not a multiple of the data size (for source and/or destination): this error is activated on the last transfer and the error address points to the last transfer (which cannot be done)
各位有遇到过这种错误吗?
总线错误,地址数据不符,地址指针错误,传输方向,使能DCMI时钟,DCMI GPIO 配置,DCMI 配置等几种情况你都一一检查过可能性了吗?
可能是设置DMA传输有误,DCMI接口接收到数据后通知DMA需要DCMI_CaptureCmd(ENABLE)来设置 CR寄存器的CAPTURE位。再找找吧。 我也遇到类似的DMA错误,请问楼主的问题解决了吗? 内存地址是否有问题?DMA开启就需要修改内存地址哦 我上传我的代码你比较一下使用的是STM32CubeMX 5.0
页:
[1]