linux(虚拟机、Ubuntu):LCD模拟器显示各种颜色

.c文件编码:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>


int main(int argc,char **argv)
{
	unsigned int x,y;
	

	/*1.打开LCD设备 */
	int fd_lcd = open("/dev/ubuntu_lcd",O_RDWR);
	
	if(fd_lcd < 0) 
	{
		perror("open");
		return -1;
	}
	
	/*2.进行内存映射 */
	unsigned int *pfb=mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,fd_lcd,0);
	
	if(pfb==NULL)
	{
		perror("mmap fail");
		return -1;			
	}
	
	/* 3.进行屏像素点为彩色 */
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为蓝色 */
			*(pfb+y*800+x)=0x0000FF;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为红色 */
			*(pfb+y*700+x)=0xFF0000;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为黄色 */
			*(pfb+y*600+x)=0xFFFF00;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为绿色 */
			*(pfb+y*500+x)=0x008000;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为白色 */
			*(pfb+y*400+x)=0xFFFFFF;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为黑色 */
			*(pfb+y*300+x)=0x000000;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为浅绿色 */
			*(pfb+y*200+x)=0x00FFFF;
		
		}
	}
	for(y=0; y<480; y++)
	{
		for(x=0; x<800; x++)
		{
			/* 设置当前像素点为紫色 */
			*(pfb+y*100+x)=0x800080;
		
		}
	}
	/*4.不再使用内存映射,则释放 */
	munmap(pfb,800*480*4);
	
	/*5.关闭lcd设备 */
	close(fd_lcd);
	
	return 0;
}

终端编译:


版权声明:本文为qq_52526226原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。