📄 tpxs.c
字号:
#include "stdio.h"
#include "fcntl.h"
#include "linux/fb.h"
#include "sys/mman.h"
#include "sys/ioctl.h"
#define FBIO_GETSTD _IOR('F',0X25,u_int32_t)
int main()
{
int fbfd=0;
struct fb_var_screeninfo vinfo;
long int screensize=0;
int i,x,y,std;
fbfd=open("/dev/fb/0",O_RDWR);
if(fbfd==-1)
{
printf("Error:Can't open framebuffer\n");
exit(1);
}
printf("The framebuffer device was opened successfully!\n");
if(ioctl(fbfd,FBIO_GETSTD,&std)==-1)
{
printf("Error:Get video standard from display device driver\n");
exit(2);
}
if(ioctl(fbfd,FBIOGET_VSCREENINFO,&vinfo)==-1)
{ printf("Error:Reading variableinformation\n");
exit(3);
}
vinfo.xres=720;
vinfo.yres=576;
vinfo.bits_per_pixel=16;
if(ioctl(fbfd,FBIOPUT_VSCREENINFO,&vinfo)==-1)
{
printf("Set video display format failed\n");
exit(5);
}
screensize=vinfo.xres*vinfo.yres*vinfo.bits_per_pixel/8;
unsigned short *fbp=(unsigned short*)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");
exit(4);
}
printf("The framebuffer device was mapped to memory successfully\n");
for(i=0;i<720*576;i++)
fbp[i]=0xffff;
for(y=0;y<100;y++)
for(x=0;x<100;x++)
{*(fbp+y*720*2+x*2+720*10+30)=0xf800;}
printf("Video success!!!!\n");
sleep(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -