⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd-test.c

📁 对lcd进行测试
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -