初级会员

- 积分
- 133
- 金钱
- 133
- 注册时间
- 2015-6-23
- 在线时间
- 15 小时
|
10金钱
在摄像实验中,0V5640的IP核输出RGB888的数据,一个像素对应3个字节;通过使VDMA停留在当前帧,最后获取当前帧每个像素的数据为4个字节;我想知道这4个字节是怎么和RGB888的数据(一个像素对应3个字节)对应上的串口打印图片
获取数据
//获取当前通道上的帧数
rd_index = XAxiVdma_CurrFrameStore(&vdma, XAXIVDMA_READ);
if(rd_index==2)
{
xil_printf("rd_index=%d\r\n",rd_index);
//使VDMA停留在当前帧
XAxiVdma_StartParking(&vdma, rd_index, XAXIVDMA_READ);
//并获取当前帧的起始地址
rd_fram_addr = frame_buffer_addr + vd_mode.height*vd_mode.width*3*rd_index;
//将当前帧的图像拷贝到抓拍图片缓存区域
memcpy((void *)bmp_addr,(void *)rd_fram_addr,vd_mode.height*vd_mode.width*3);
//结束读通道驻停过程,继续在多帧之间进行切换
XAxiVdma_StopParking(&vdma, XAXIVDMA_READ);
for(a=0;a<10000;a++)
{
xil_printf("bmp_addr[%d]=0x%0x\r\n",a,((unsigned int *)bmp_addr)[a]);
}
break;
}
|
最佳答案
查看完整内容[请看2#楼]
已经代码测试弄清楚;4个3字节数据与3个4字节数据对应关系;例如:Get_frame_Addr[0]=0x0AFF800A;Get_frame_Addr[1]=0x800AFF80;Get_frame_Addr[2]=0x0xFF800AFF;Get_frame_Addr[2]接上Get_frame_Addr[1]接上Get_frame_Addr[0];最后得到4个3字节:
FF800A
FF800A
FF800A
FF800A
|