lcd-test.c

来自「对lcd进行测试」· C语言 代码 · 共 42 行

C
42
字号
#include <fcntl.h>
#include <sys/mman.h>
#include <linux/fb.h>
#include <stdio.h>
#include <stdlib.h>

int main (void)
{
        //int c;
        //FILE *in;*out;
        int fd,fbsize,x,y,i,j;
        int c,d,e,f;
        unsigned char *fbmem;
        //unsigned char buf[][];
        struct fb_var_screeninfo vinfo;
        fd = open("/dev/fb0",O_RDWR);
        if (fd < 0){
                perror("open (dev/fb0)");
                return 1;
        }
        if (ioctl(fd,FBIOGET_VSCREENINFO,&vinfo)){
                perror("ioctl(FBIOGET_VSCREENINFO)");
                return 1;
        }
        fbsize = vinfo.xres*vinfo.yres*(vinfo.bits_per_pixel/8);
        x = (vinfo.xres/2)*(vinfo.bits_per_pixel/8);
        y = fbsize/x;
        fbmem = (char *)mmap(0,fbsize,PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
        if (fbmem == MAP_FAILED) {
                perror("mmap()");
                return 1;
        }
        c=0xf800;d=0x07e0;e=0x001f;f=0x0704;
        for(;;)
        {for (i = 0;i<y/2 ;i+=2) memset(fbmem+x*i,c,x);
        for (i = 1;i<y/2 ;i+=2) memset(fbmem+x*i,d,x);
        for (i = y/2;i<y ;i+=2) memset(fbmem+x*i,e,x);
        for (i = y/2+1;i<y ;i+=2) memset(fbmem+x*i,f,x);
        c=~c;d=~d;e=~e;f=~f;
                sleep(1);
        }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?