linux无限刷屏代码,linux下如何实现简单刷屏
今天為了測試我的LCD有沒有壞點寫了一個簡單的刷屏程序,效果還不錯,分析給大家。代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include
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;
}
總結
以上是生活随笔為你收集整理的linux无限刷屏代码,linux下如何实现简单刷屏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 空间服务器有问题是系统问题吗,服务器空间
- 下一篇: mysql accessdenies_m