我正在使用
STM32H743。
我使用 STM32CubeMx 来配置 DCMI。它使用 DMA 传输到内存。
调用 HAL_DCMI_Start_DMA() 时,会调用 DCMI_DMAError() 函数。
我发现存在传输错误。根据文档,总线错误是原因。
但是 MCU 的 CFSR 寄存器为零,表示没有总线错误。
有什么问题吗?
我做的事情:
- 使用STM32CubeMX设置DCMI并启用DMA
- 禁用缓存
- 使用在 SRAM1 中创建缓冲区
- __attribute__ ((section(".buffer"), 使用)) uint32_t bigbuf[30000];
- 检查它是否存在于区域 RAM_D2 中
- 称为 HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_CONTINUOUS, (uint32_t)bigbuf, ((752*480)/4)/4);
- 返回 HAL_OK
- 传感器是 752*480,我使用 8 位 DCMI(因此一个字中有 4 个)并且我使用一半的像素数和一半的行数
- 用示波器检查 DCMI 是否正常工作(存在时钟、同步和数据信号)
知道为什么我会收到此传输错误吗?