micro2440的板子,7寸屏,内核是2.6.32的,自带UVC驱动。
买了个empia芯片200万像素的相机,插到板子上能识别出来,编码是1b1a:2581,
分辨率在PC机上可以设置成800*600, V4L2的接口,YUYV的格式,用mmap也可以吧图片拍出来
但是插到板子上,分辨率死活都是1600*1200, mmap后就没反应,pc机上如果设成1600*1200也会没反应。
#define VIDEO_WIDTH 800
#define VIDEO_HEIGHT 600
struct v4l2_format fmt;
memset(&fmt, 0, sizeof(fmt));
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = VIDEO_WIDTH;
fmt.fmt.pix.height = VIDEO_HEIGHT;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
ret = ioctl(fd, VIDIOC_S_FMT, &fmt);
if (ret < 0) {
printf("VIDIOC_S_FMT failed (%d)\n", ret);
return ret;
}
求高手指点啊