2026/08/16 linux嵌入式系统的开机动画
一、开机动画的显示原理
基本原理
一般电子产品在开机之后都会加深用户印象,一般开机之后都会播放一段开机动画(视频、GIF......),不管哪种采用形式,内部原理都是相同,都是利用人类的眼睛的视觉暂留效应实现的,可以让用户看到画面是动态的。

如果打算实现画面的动态显示则需要确保每秒钟在用户眼睛的前面连续播放若干帧图像,帧率至少是24HZ,也被称为帧刷新率 FPS ,作为开发者而言,需要准备大量的素材,本次就以开机动画为例,实现程序设计。
准备素材

此时可以看到生成的jpg图片的命名: Frame 0 .jpg 也就是编号范围是0 ~ 59
程序设计
int main(int argc, char const *argv[])
{
//1.打开LCD open
int lcd_fd = open("/dev/fb0",O_RDWR);
//2.对LCD进行内存映射 mmap
lcd_mp = (int *)mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,lcd_fd,0);
//3.显示开机动画
char gif_path[128] ={0};
while(1)
{
for (int i = 0; i < 82; ++i)
{
sprintf(gif_path,"./gif/Frame%d.jpg",i); //构造jpg图片的路径
read_JPEG_file (gif_path,0,0); //在LCD上显示
usleep(1000*20); //FPS = 50HZ
}
}
return 0;
}
注意:动态图的相关素材必须也传输到开发板,由于tftp不支持传输文件夹,建议采用scp命令,另外,程序中的素材的路径必须完整。
作者:bbzhu04@gmail.com ,多有不妥之处,望批评指正
本文原创,欢迎转载;转载请在文章显著位置标明原文链接: href="https://www.cnblogs.com/zhubb/p/22508350"
保留所有权限,未经许可禁止篡改、商用发布。

浙公网安备 33010602011771号