这是小弟写的基于linux下的ov9650的测试代码,读ov9650采集的数据发送到帧缓冲中显示,我的开发板是mini2440;欢迎大家的指点!!谢谢了!!
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <stdio.h>
int main()
{
int fd_cam;
int fd_fb;
char *Addr;
int Size=0;
int i;
char *buf;
if(fd_cam=open("/dev/camera" , O_RDWR)<0)
{
printf("can not open camera");
exit(0);
}
if(fd_fb=open("/dev/fb0" , O_RDWR)<0)
{
printf("can not open lcd");
exit(0);
}
struct fb_fix_screeninfo finfo;
struct fb_var_screeninfo vinfo;
if(ioctl(fd_fb, FBIOGET_FSCREENINFO, &finfo)==-1);
printf("error");
if(ioctl(fd_fb, FBIOGET_FSCREENINFO, &vinfo)==-1);
printf("error");
Size = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8;
Addr = ( char *)mmap(NULL, Size, PROT_READ|PROT_WRITE,MAP_SHARED, fd_fb, 0);
buf = (char *)malloc(Size);
for(;;)
{
read(fd_cam, buf, Size);
for(i=0;i<Size;i++)
{
Addr = buf;
}
}
}