学习分享:
LCD上面显示的图像色彩,由其对应的内存的数据决定
映射内存的大小至少得等于LCD的真实尺寸大小
映射内存的大小可以大于LCD的真实尺寸,有利于优化动态画面(视频)体验
下面是屏幕显示为红色的示例代码:
#include <stdio.h>#include <sys/mman.h>#include <string.h>#include <fcntl.h>int main(){ // 打开液晶屏文件 int lcd = open("/dev/fb0", O_RDWR); // 给LCD设备映射一块内存(或称显存) char *p = mmap(NULL, 800*480*4, PROT_WRITE, MAP_SHARED, lcd, 0); // 通过映射内存,将LCD屏幕的每一个像素点涂成红色 int red = 0x00FF0000; for(int i=0; i<800*480; i++) memcpy(p+i*4, &red, 4); // 解除映射 munmap(p, 800*480*4); return 0;}

LCD上面显示的图像色彩,由其对应的内存的数据决定
映射内存的大小至少得等于LCD的真实尺寸大小
映射内存的大小可以大于LCD的真实尺寸,有利于优化动态画面(视频)体验
下面是屏幕显示为红色的示例代码:
#include <stdio.h>#include <sys/mman.h>#include <string.h>#include <fcntl.h>int main(){ // 打开液晶屏文件 int lcd = open("/dev/fb0", O_RDWR); // 给LCD设备映射一块内存(或称显存) char *p = mmap(NULL, 800*480*4, PROT_WRITE, MAP_SHARED, lcd, 0); // 通过映射内存,将LCD屏幕的每一个像素点涂成红色 int red = 0x00FF0000; for(int i=0; i<800*480; i++) memcpy(p+i*4, &red, 4); // 解除映射 munmap(p, 800*480*4); return 0;}
