以下是我自己写的linux下面的usb摄像头程序,运行后LCD上只有黑乎乎的一块。。。求高手指教
#include <stdio.h>
#include <fcntl.h>
#define VIDEO_SIZE 230400
#define FB_SIZE 153600
int main()
{
int i,ret;
char buf_video[VIDEO_SIZE],buf_fb[FB_SIZE];
int fd_video,fd_fb;
if((fd_video=open("/dev/video0",O_RDWR))<0)
printf("Open Error!\n");
printf("running!\n");
while(1)
{
if((ret=read(fd_video,buf_video,VIDEO_SIZE))<0)printf("Read Video Error!\n");
for(i=0;i<76800;i++)
{
buf_fb[2*i+1] = (buf_video[3*i+2]&0xf8)|((buf_video[3*i+1]>>5)&0x07);
buf_fb[2*i] = ((buf_video[3*i+1]<<3)&0xe0)|((buf_video[3*i]>>3)&0x1f);
}
if((fd_fb=open("/dev/fb0",O_RDWR))<0)printf("Open Error2!\n");
write(fd_fb,buf_fb,FB_SIZE);
close(fd_fb);
}
close(fd_video);
return 0;
}