本帖最后由 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,没有任何变化。
找了半天原因,怎么也没明白是哪里配置有问题呢?
谢谢大家!~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
自顶。。。.....
一周热门 更多>