Linux下的 /dev/fbx 是标准的帧缓冲设备,由于它是一个标准的接口,所以只要是Linux系统,无论什么平台,都可以使用内核里的相关函数来对屏幕进行操作。

今天我就介绍一个非常简单的例子,在屏幕上循环显示红绿蓝三基色。
话不多说,直接贴代码:

由于我所用的屏幕的颜色是32位的,所以颜色值都比24位的多了两个F。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/fb.h>
#include <sys/mman.h>int lcd_fd;
unsigned char *lcd_mem_p=NULL;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
#define FB_DEV "/dev/fb0"void LCD_Write_Point(int x,int y,int color); //画点函数
void LCD_Clear(int color);  //清屏函数int main()
{/*1.打开设备文件*/lcd_fd=open(FB_DEV,2);if(lcd_fd<0){printf("%s device file open failed.\n",FB_DEV);return 0;}/*2.获取可变参数*/ioctl(lcd_fd,FBIOGET_VSCREENINFO,&vinfo); //可变参数printf("screen x:%d, screen y:%d ,pixel_bit:%d\n",vinfo.xres,vinfo.yres,vinfo.bits_per_pixel);/*3.获取固定参数*/ioctl(lcd_fd,FBIOGET_FSCREENINFO,&finfo);printf("smem_len=%d Byte,line_length=%d Byte.\n",finfo.smem_len,finfo.line_length);/*4.映射LCD屏物理地址到进程空间*/lcd_mem_p=(unsigned char *)mmap(0,finfo.smem_len,PROT_READ|PROT_WRITE,MAP_SHARED,lcd_fd,0);/*5.操作LCD屏幕*/while(1){  LCD_Clear(0xFFFF0000); //红色sleep(1);LCD_Clear(0xFF008000); //绿色sleep(1);LCD_Clear(0xFF0000FF); //蓝色sleep(1);}/*6.关闭驱动*/munmap(lcd_mem_p,finfo.smem_len);close(lcd_fd);
}/*******************************画点函数* ***************************/
void LCD_Write_Point(int x,int y,int color)
{unsigned int *p=(unsigned int *)(lcd_mem_p+vinfo.xres*y*vinfo.bits_per_pixel/8+x*vinfo.bits_per_pixel/8);*p=color;
}/*****************************
*清屏函数
* ****************************/
void LCD_Clear(int color)
{int i,j;for(i=0;i<vinfo.yres;i++){for(j=0;j<vinfo.xres;j++){LCD_Write_Point(j,i,color);}}
}

代码很短,功能也很简单,但基本框架就这么多,关于显示方面的功能验证还有显示字符、图片等等,由于工作上涉及不到,以后有机会再多记录些,嘿嘿。

Linux开发板循环显示红绿蓝相关推荐

  1. linux开发板汉字显示,Linux Qt 及Arm开发板汉字显示

    作为一个优秀的开发人员,我就不说废话了. 很多人在 使用Qt做嵌入式开发时,会遇到一个问题: 汉字显示,网上有好多方法,并且针对 Qt5 以前的版本和Qt5 的版本有不同的方法,同样,我也遇到了这个问 ...

  2. 嵌入式Linux开发-在6818开发板上显示图案

    lcd屏幕的显示原理 我们常说开发板的屏幕是800*480的 单位是什么? 像素点! 屏幕一行有800个像素点 一列有480个像素点. 像素点? 显示颜色的点 怎么让像素点显示自己想要的颜色? OS规 ...

  3. JavaScript分类显示随机颜色【红绿蓝青黄紫、黑白、全彩】

     JavaScript分类显示随机颜色[红绿蓝青黄紫.黑白.全彩],随机显示分类颜色,按color系列显示随机颜色. web中颜色的表达方法可以用内定的英文单词或颜色代码,其中颜色代码一般分两种形 ...

  4. 开发板连续显示图片 | BAD APPLE 万耦中的二次元世界

    本文分享自中移OneOS微信公众号<万耦中的二次元世界!>,作者:小M哥. BAD APPLE原本是东方游戏里的一首歌曲,后来被加了一个MAD,由于MAD非常惊艳华丽,使得BAD APPL ...

  5. 基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录

    基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录 硬件环境 正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2) 底板+核 ...

  6. 正点原子Linux开发板 spi内核驱动 0.96寸ips屏教程

    正点原子Linux开发板 spi内核驱动 0.96寸ips屏教程 首先选择模块 设备树配置 spi驱动程序(用的spi_driver) app 最近做下底层SPI驱动来驱动IPS屏,本来想实现这种效果 ...

  7. linux开发板 pc 通讯_从51单片机到Linux 开发板运行hello world(教程4)

    大家好,我是兔子. 是一个嵌入式软硬件工程师. 正在从单片机开发转岗Linux开发. 这次教大家如何在Linux开发板上运行可执行文件. 简单起见,不涉及到硬件.直接和教程2一样,能在PC虚拟机上运行 ...

  8. 【嵌入式Linux应用】初步移植MQTT到Ubuntu和Linux开发板

    1. 概述 ​ 本篇主要是记录将MQTT移植安装到百问网STM32MP157开发板上,并且是跑一下MQTT的一个例程来验证,要完成本次移植安装,必须要保证电脑和开发板都能上网.. 2. 软件平台 ​ ...

  9. 12[红+绿+蓝+Alpha]

    第十二集 红+绿+蓝+Alpha 红绿蓝组成了绚烂的颜色世界, 当红绿蓝遇到Alpha后, 这个颜色世界又多了一份神秘. 神秘的Alpha, 我们可以简单的认为它和红, 绿, 蓝一样, 是组成色彩的一 ...

  10. 用STM32F103C8T6实现红绿蓝LED流水灯

    目录 一.STM32F103C8T6简介 二.GPIOx端口的各寄存器地址和详细参数 2.1寄存器分别如下 2.2寄存器地址 2.3时钟地址 2.4GPIO寄存器描述CRL与CRH 2.5GPIO端口 ...

最新文章

  1. openSuse 13.1 的触摸板,回来了
  2. react native 的TextInput组件问题
  3. JSON动态解析()
  4. 第6章-一阶多智体系统一致性-->6.5 带有领航者系统一致性
  5. hdu 4268 Alice and Bob(STL版)
  6. aptitude安装出现依赖_oeasy 教您玩转linux 之 010210 应用管理 aptitude
  7. QT5.14.2基于PCL1.11.1显示点云(基于Windows VS2019开发环境)
  8. mysql工作中遇到的问题_MySQL工作中遇到的问题记录
  9. C++匿名对象生命周期静态变量函数
  10. quartus仿真6:74194构建线性反馈移位寄存器计数器LFSR
  11. win10 安装 face_recognition
  12. MyBatis学习(一):简单的运行
  13. 爬虫开发python工具包介绍 (4)
  14. Linux系统tomcat修改端口
  15. html5一个可拖动的图片大小,HTML5画布中的可拖动和可调整大小元素
  16. SEO优化:如何挖掘谷歌关键词-实例讲解(2022最新)
  17. 网页去广告服务器,使用 AdGuardHome,实现网页加速和去广告
  18. 51单片机-TLC5615代码
  19. FileZilla软件的下载、服务器站点配置与数据传输方法
  20. 写给自己 NOI2012流水帐

热门文章

  1. 为什么罗氏线圈不能测直流电流?
  2. Solidworks常见问题一览
  3. EXCEL常用函数总结
  4. 六款很6的电脑驱动管理器:驱动升级用什么软件好 | 国外最好的电脑驱动管理软件推荐
  5. 寻找春天nbsp;九宫格日记-2011.09.20
  6. 北京/杭州内推 | 阿里达摩院城市大脑实验室视觉团队招收CV实习生
  7. layui table切换html,解决Layui中切换tab时table样式错乱问题
  8. 陕西中医药有计算机系吗,校内制度 - 陕西中医药大学信息化建设管理处
  9. PHP超级外链工具源码/无后台一键批量外链源码
  10. 记录实验所用计算机硬件配置,《计算机硬件性能检测》实验指导书