内存映射到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;
}

posted @ 2026-07-20 22:03  南质冰清  阅读(2)  评论(0)    收藏  举报