内存映射到LCD屏幕并画线
include <stdio.h>
include <sys/types.h>
include <sys/stat.h>
include <fcntl.h>
include <sys/mman.h>
include <unistd.h>
define LCD_PATH "/dev/fb0"
define LCD_SIZE 8004804
define LCD_WIDTH 800
define LCD_HEIGH 480
define LINE_WIDTH 10
int main()
{
//打开LCD接收open函数返回值
int LCD_fd = open(LCD_PATH, O_RDWR);
if (LCD_fd == -1)
{
perror("打开LCD设备失败");
return -1;
}
//内存映射 (打开后才能映射)
int *lcd_mp = mmap(
NULL,
LCD_SIZE,
PROT_READ|PROT_WRITE,
MAP_SHARED,
LCD_fd,
0);
//显示线
for (size_t y = 0; y <480; y++)
{
for (size_t i = 0; i < LINE_WIDTH; i++)
{
size_t x = y ;
//y = 479行
(lcd_mp+yLCD_WIDTH+x+20+i)= 0xFF0000;
}
}
//关闭LCD和基础映射
close(LCD_fd);
munmap(lcd_mp,LCD_SIZE);
return 0;
}

浙公网安备 33010602011771号