linux下如何实现简单刷屏【转】

简介:

     今天为了测试我的LCD有没有坏点写了一个简单的刷屏程序,效果还不错,分析给大家。代码如下:

 #include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
 int fbfd = 0;
 struct fb_var_screeninfo vinfo;
 struct fb_fix_screeninfo finfo;
 long int screensize = 0;
 char *fbp = 0;
 char inbuf[240*320*2];
    int i = 0;
 /*open /dev/fb0 */
 fbfd = open("/dev/fb0",O_RDWR);
 if(fbfd<=0)
 {
  printf("Error:cannot open framebuffer devices./n");
  return -1;
 }
 printf("The framebuffer devices was opened successfully./n");
 /*get framebuffer infomation*/
 if(ioctl(fbfd,FBIOGET_FSCREENINFO,&finfo))
 {
  printf("Error: reanding fixed informatin./n");
  return -1;
 }
    if(ioctl(fbfd,FBIOGET_VSCREENINFO,&vinfo))
     {
   printf("Error: reanding var informatin./n");
   return -1;
  }
 
 /*set screensiez*/
 screensize = vinfo.xres*vinfo.yres*vinfo.bits_per_pixel/8;
    /*mmap*/
 fbp = (char*)mmap(0,screensize,PROT_READ|PROT_WRITE,MAP_SHARED,fbfd,0);
 if((int)fbp == -1)
 {

   printf("Error: failed to map framebuffer device to memory./n");
   return -4;
 }
    
  printf(" The framebuffer device was mapped to memory sucessfully./n");
  memcpy(inbuf,fbp,screensize);//保存刷屏前显存中的数据
     for(i = 0;i<0xff;i++)
  {
   memset(fbp,i,screensize);
   sleep(1);
  }
   memcpy(fbp,inbuf,screensize);//将保存的显存数据复原回去
   munmap(fbp,screensize);
  printf("The framebuffer device was munmaped successfully./n");
  close(fbfd);
  printf("The framebuffer device was closed successfully./n");
  return 0;

}















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5587254.html,如需转载请自行联系原作者

相关文章
|
Linux
linux下如何实现简单刷屏【转】
转自:http://blog.csdn.net/figthter_cui/article/details/6145272 版权声明:本文为博主原创文章,未经博主允许不得转载。      今天为了测试我的LCD有没有坏点写了一个简单的刷屏程序,效果还不错,分析给大家。
882 0
|
11天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
11天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
8天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
30 9
|
1天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
9 0
|
3天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
22 6
Linux 中的 Nslookup 命令怎么使用?
|
3天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
4天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
4天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
48 0
|
7天前
|
缓存 运维 监控
Linux系统监控利器:探索常用命令及数据保存技巧
Linux系统监控利器:探索常用命令及数据保存技巧
26 4
Linux系统监控利器:探索常用命令及数据保存技巧