DCMI+DMA+FPGA 接收 线阵传感器 无法获取数据

2019-07-20 15:23发布

本帖最后由 orta 于 2017-4-4 00:04 编辑

原子大大好,大家好,最近小弟有个项目,是用STM32+FPGA 获取线阵传感器数据。目前架构如下:

(1) FPGA通过DCMI接口与STM32相连接, 数据流为:
1秒1帧图像,一帧图像为 8192个字节,这一秒中 HREF 数量只有一行(因为是线阵)。PCLK为6MHZ, HREF低有效,长度8192个CLK, VSYNC低有效,长度比HREF多一点。

(2) 然后我在STM32中进行调试,首先申请数组
u16 CCD_DATA[4096]; (8192个字节对应4096个像素,每个像素16bit,不使用外部SRAM)

(3) 然后进行DCMI和DMA初始化,并启动
My_DCMI_Init();            
DCMI_DMA_Init((u32)CCD_DATA,1,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Disable); (这里我学原子大大教程)
DCMI_Start();

(4) 然后在DCMI的中断中加入
void DCMI_IRQHandler(void)
{
    if(DCMI_GetITStatus(DCMI_IT_FRAME)==SET)
    {
        DCMI_ClearITPendingBit(DCMI_IT_FRAME);
        LED0=!LED0;
        ccd_frame++;  
    }
}

(5) 最后,在MAIN主循环中,用LCD不停刷 CCD_FRAME(观察是否进入中断),以及 CCD_DATA数组的某几个值。


此时,发现问题,首先 LED翻转正确,CCD_FREAM++ 正确(一秒增加一,与实际FPGA发送过来的同步信号吻合),说明DCMI的中断成功不停地进入。
但是,在刷新观察CCD_DATA数组的值发现,只有第一个u16数据有变化(ccd_data[0] 数值在更新),其余所有的数值都是 0,没有任何变化。

找了半天原因,怎么也没明白是哪里配置有问题呢?

谢谢大家!~~~






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。