当前主流的显示器件

1.LED大屏幕

主要应用在大型的商场,也是由一块块的小型的屏幕拼接到一起的,背面会比较厚  在工作过程中会产生大量的热,有些LED后边会有一个空调 专门用来散热。

2.数码管

51单片机上使用七段或者是八段数码管的较多

3.点阵屏

OLED:自发光的二级管  可以弯曲

LCD:技术相对来说比较成熟  寿命远高于OLED,LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。LCD屏又分为:电阻屏、电容屏;

电阻屏:全称为电阻式触摸屏,俗称“软屏”,结构上分为三层,里层是玻璃,外层是薄膜,在薄膜和玻璃相邻的一面都涂上ITO(铟锡金属氧化物)。通过点触产生通路,通过电压差来定位,需要进行校准(三点校准,五点校准)这个只要开机就要进行校准。(一点触控)

电容屏:全称为电容式触摸屏,俗称“硬屏”,是一块四层复合玻璃屏,第一层是ITO,用以保证工作环境,第二层是玻璃,第三层也为ITO涂层,做工作面使用;第四层则是矽土玻璃保护层。通过触碰改变电容,触摸芯片实时采集电容信号来实现定位(五点触摸和十点触摸校准)

4.水墨屏

没有任何发光  看起来就像看书本一样

        原理,电子墨水屏其是由许多的电子墨水所组成,电子墨水我们可以把他们看成是一个个胶囊的样子,并且在每一个胶囊里面其都会有着液体电荷,其中正电荷染白色,负电荷染黑色,因此当我们在一侧给其给予正负电压时,带有电荷的液体就会被分别吸引和排斥。这样,每一个像素点就可以显示出白色又或者是黑色了。

5.显像管

在之前的老的电视机或者是“大头电脑”里,后端有一个阴极,他往外不停发射电子,经过偏转线圈调整 电子打到显示器上,这个时候我们看到的就是图像。

LCD常用的接口

接口类型分为:RGB 模式、SPI 模式、MDDI 模式、VSYNC 模式、DSI 模式、MCU 模式等

分类详解(引用)

8080并行接口

8080并行接口,又叫因特尔总线,是 MCU 模式中常用得一种总线,由数据总线和控制总线两部分组成。

引脚 说明
CS 片选信号
RD MCU (MPU) 从LCD读数据控制线,上升沿有效,读数据时,WR拉高
WR MCU(MPU) 向LCD写入数据控制线,上升沿有效,写数据时 RD拉高
DC (RS) 数据/命令控制,L:低命令,H:高数据
RST 硬件复位 LCD 信号
Data[0:x] 数据总线,支持8/9/16/18/24bit,最常用的是8位

写数据:

  • CS为低,选中
  • RD为高, 禁止写
  • DC/RS为高(写数据,写命令拉低)
  • 在WR的上升沿,使数据写入到 驱动 IC 里面
  • CS为高,结束一组数据读取

读数据:

  • CS 拉低,选中
  • DC/RS 为高(读数据)
  • WR 为高,禁止写
  • 在RD的上升沿,读线上的数据(D[0:7]),假设8位 8080并口
  • CS 拉高,取消片选

8080时序通过io模拟太过复杂,采用FSMC模拟8080时序。

FSMC外设接口

由于 FSMC 外设可以用于控制扩展的外部存储器,而 MCU 对液晶屏的操作实际上就是把显示数据写入到显存中,与控制SRAM 存储器非常类似,且 8080 接口的通讯时序完全可以使用 FSMC 外设产生,因而非常适合使用 FSMC控制液晶屏。

统一编址:把外扩存储器地址统一编址到4G地址空间下,可以实现快速获取数据操作,内核对存储芯片操作 -- 直接操作内核地址=外部存储器地址。

独立编址:必须操作外部存储器地址,如:flash。

  1. 外扩的存储类型

— 静态随机访问存储器 (SRAM)
— 只读存储器 (ROM)
— NOR Flash/OneNAND Flash
— PSRAM(4 个存储区域) — PC 卡

接口介绍:

FSMC将1G的地址分成了四块:

LCD屏接口:使用NorFlash/PSRAM信号和共享信号,对应1G地址的Bank1

Bank1又分成了四个区:

将Bank1的四个区映射外部存储器地址:

以上是MCU阶段学习的,接下来是驱动内容。

本次采用的是tiny4412电容触摸屏

尺寸   七英寸
分辨率 800*480
像素位数 32位
屏幕刷新率

60FPS

可以算出每秒钟所需的流量:

800*480*4 --1500k  *   60  ---87.89M

这么大的数据使用SPI或者是IIC都不合适了 采用的接口是RGB接口。

开发板LCD屏驱动

lcd驱动生成的文件一般存放在/dev/fb0  这个fb0在Linux下一般表示这就是一个LCD屏,所谓的lcd的应用就是在学习  如何使用/dev/fb0这个文件。使用这个文件就要借助Linux提供的接口;

API

函数功能:将文件映射到进程中的内存空间

函数的头文件

#include<sys/mman.h>

函数原型

void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset)

函数参数

void *addr :一般填写NULL 表示由系统指定一块内存空间供我们使用
size_t length :映射的空间的长度
int prot :PROT_READ | PROT_WRITE
int flags :MAP_SHARED  同步的变更
int fd :文件描述符
off_t offset:一般写0

函数返回值

返回的就是我们映射成功的地址空间,我们去操作这个地址,就相当于操作文件,同样的相当于操作我们的显示屏

映射空间的长度需要借助 ioctl 函数

int ioctl(int fd, ind cmd, …); 
    其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,这个参数的有无和cmd的意义相关。

ioctl(fd,FBIOGET_VSCREENINFO,&fvs);
struct fb_var_screeninfo {__u32 xres;           横坐标的长 lcd的长__u32 yres;          纵坐标的长 lcd的宽__u32 xres_virtual;  虚拟坐标的长  __u32 yres_virtual; 虚拟的宽__u32 bits_per_pixel;       :像素位  一个像素点占用多少位......................................};

在屏幕显示一张图片代码:

#include <stdio.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/ioctl.h>
//#include <stdint.h> //uint32_t 头文件extern unsigned char gImage_b[1152000];
u_int32_t *lcd_base=NULL;
struct  fb_var_screeninfo fvs;void show_pic(u_int8_t *data,int w,int h)
{u_int32_t *p;int j,i;p=lcd_base;for(i=0;i<h;i++){for(j=0;j<w;j++){p[j]=data[j*3+i*3*w+2]<<16|data[j*3+i*3*w+1]<<8|data[j*3+i*3*w];}p+=fvs.xres_virtual;}
}int main()
{int fd;fd =open("/dev/fb0",O_RDWR);if(fd<0){perror("open");return -1;}ioctl(fd,FBIOGET_VSCREENINFO,&fvs);printf("真实的长度是:%d\n",fvs.xres);printf("真实的长度是:%d\n",fvs.yres);printf("真实的长度是:%d\n",fvs.xres_virtual);printf("真实的长度是:%d\n",fvs.yres_virtual);printf("像素位:%d\n",fvs.bits_per_pixel);lcd_base=mmap(NULL,fvs.xres_virtual*fvs.yres_virtual*fvs.bits_per_pixel/8,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);show_pic(gImage_b,800,480);return 0;
}

LCD屏应用--笔记相关推荐

  1. mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖

    ps:创业开发产品,自学笔记,不一定适合教材性的阅读,零碎整理,自我总结用 材料:4.1寸lcd屏两块,屏自带触控,屏幕资料具备,rk3399和MK8788开发版上分别开发. 开发环境: 1]rk33 ...

  2. 【S3C2440】第17课、LCD之学习笔记

    LCD课程笔记: 1.需要编程的参数 1)根据外接的LCD数据手册的值设置2440中LCD控制器时序的参数; 2)设置LCD控制器的寄存器; 面向对象,结构化编程!!!! 在应用编程中,要习惯面向对象 ...

  3. zigbee无线传感网实训---在LCD屏上显示JPG图片、 触摸屏、相册(The fourth day)

    b 承接实训第三天:zigbee无线传感网实训---LCD显示bmp图片及一些简单的c语言编程功能( On the third day) 一.修改实训第三天中练习2中的bug(在原码的基础上增加:ls ...

  4. 小明分享|sigmstar SSD201/SSD202 针对MIPI的LCD屏配置操作说明分享,更多Sigmastar相关技术文档及沟通讨论,可以给小明留言,小明邀请你进入我们的技术沟通群

    小明会定期分享SigmastarSSD201/202相关芯片技术文档!我们也有一个Sigmastar技术沟通群聊!有感兴趣的开发小伙伴也可以留言给小明,小明邀请你进入! SSD20X 平 台 LCD ...

  5. 小明分享|sigmstar SSD201/SSD202 针对RGB的LCD屏配置操作说明分享

    SSD20X 平 台 LCD 屏 的 配 置 主 要 涉 及 两 个 结 构 体 :MI_PANEL_ParamConfig_t . MI_PANEL_MipiDsiConfig_t 和他们定义在:p ...

  6. linux spi屏驱动程序,65 linux spi设备驱动之spi LCD屏驱动

    SPI的控制器驱动由平台设备与平台驱动来实现. 驱动后用spi_master对象来描述.在设备驱动中就可以通过函数spi_write, spi_read, spi_w8r16, spi_w8r8等函数 ...

  7. lcd图片转二进制工具_辽宁2.8寸LCD屏价格,测距仪LCD显示屏_思迈微

    首页 > 新闻中心 发布时间:2020-11-15 08:27:09 导读:思迈微为您提供辽宁寸LCD屏价格,测距仪LCD显示屏的相关知识与详情: 以上便是对LED点阵式显示屏的软硬件系统.组成 ...

  8. LCD屏参:手把手教你计算LCD屏参(proch值)

    LCD屏参(proch值)解释和计算 Linux内核的lcd控制器使用clcd_panel结构体表示一个LCD屏的硬件参数: /* include/linux/fb.h */   struct fb_ ...

  9. iQOO Neo5活力版或本月发布:搭载骁龙870+高刷LCD屏

    3月16日晚,iQOO正式发布了全新的iQOO Neo 5旗舰手机,虽然搭载的是骁龙870而非顶级的骁龙888处理器,但该机首次在同价位机型上搭载了独显芯片,号称游戏60帧可变120高帧,受到了不少用 ...

最新文章

  1. Data Geekery发布了Java ORM工具jOOQ的3.9.0版,用于构建类型安全查询
  2. (chap4 IP协议)IP地址
  3. kibana从入门到精通-Kibana安装
  4. Web完整渗透测试实例(windows)
  5. plsql数据库异常---plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
  6. SQL SERVER 2005自动备份
  7. wps分析工具库如何加载_怎么在wps表格里面加入“数据分析”工具啊?
  8. 气象数据分析之EOF分析以及python的实现
  9. 手机计算机星点符号是除吗,手机星号怎么打
  10. 【装箱问题】基于Shuffled Complex Evolution (SCE) 算法解决装箱问题 (BPP)附matlab代码
  11. 故事要从我白嫖了一个阿里云服务器说起
  12. 解决Could not resolve XXX
  13. Java程序设计基础——简单Java程序
  14. kali linux 命令
  15. syscall常量解释(持续完善中)
  16. 蓝桥杯真题python B试题 C: 纸张尺寸
  17. 26 欧拉积分疑惑解析
  18. 【Atcoder】AtCoder Beginner Contest 174总结
  19. 解决:java.lang.IllegalStateException: Failed to load property source from ‘file:~application.yml
  20. CRC32算法冲突概率测试和分析

热门文章

  1. vim全选,全部复制,全部删除快捷键
  2. 「Android渲染」图像是怎样显示到屏幕上的?
  3. 题目 1546: 班级排名
  4. hust 1546 hdu 3911 Black And White
  5. unity 使用姿态传感器制作互动项目--太极平衡桩
  6. 健美计步器-开启超智能健康生活
  7. 动作捕捉技术识别细小错位 机械外骨骼适应性升级
  8. 目录服务器的互联网协议是,各个网络协议汇总(01)
  9. 大厂面试机器学习算法(0):特征工程 | 数据预处理
  10. offer档次大观(IT)分享一下