自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 C语言学习笔记

指针变量的两种类型:自身的类型和指向的类型例: int *P = NULL;自身的类型:在指针变量定义的时候,将变量名拿掉(即P),剩下 int ,这就是指针变量的类型;指向的类型:在指针变量定义的时候,将变量名和距离最近的拿掉(即 *P),剩下(int )就表示P指向的类型是int .指针变量指向类型的作用:决定了指针变量所取内容的宽度,即指针变量+1 跳过的单位跨度。...

2020-08-07 17:22:23 147

原创 ucos2源码分析---内核部分(三)

ucos 中uC-LIB、uC-CPU、uCOS-II 文件夹下的各个文件简单说明

2022-08-20 23:53:54 1615

原创 uCOS2源码分析1-BSP部分(二)

1)bsp是board support packet 板级支持包(2)bsp其实就是对硬件操作的封装(底层驱动或中间驱动层封装)(3)完全移植的工作量主要就在bsp这一块这部分主要是使用Source insight进行查看。主要分为这几块,包含系统时钟的配置、GPIO的配置、中断表的配置、串口的初始化。...

2022-08-16 13:21:26 661

原创 RTOS那些你得知道的事儿(一)

对于RTOS的一个初步的认识

2022-08-14 12:00:22 1118

原创 嵌入式之buildroot的引入学习笔记

注:以下内容来自朱老师物联网大讲堂课件1. X210的bsp介绍1.1 嵌入式linux产品的bsp介绍(1)大部分的ARM架构的linux平台的bsp的内容和结构都是相似的。(2)bsp一般是芯片厂家/板卡厂家提供的。1.2 X210的linux+QT bsp整体介绍(1)tslib_x210_qtopia.tgz是用来支持QT的触摸屏操作的应用层库我们对qt_x210v3s_160307.tar.bz2进行解压,得到(2)xboot和uboot是X210支持的2个bootloader

2021-02-01 20:35:16 571 3

原创 嵌入式之根文件系统构建学习笔记

注:以下内容来自朱老师物联网大讲堂课件1. 根文件系统的构建路线1.1 先逐步构建文件夹形式根文件系统然后制作烧录镜像(1)rootfs有2种格式:nfs方式启动的文件夹形式的rootfs和用来烧录的镜像形式的rootfs。(2)传统的培训机构中上课时,rootfs制作实验都是直接给制作文档,学生参照制作文档的步骤自己动手做,一步到位做出来的就是可供烧录的rootfs。(3)我们先从空文件夹开始,逐步向其中添加一些rootfs中必备的东西,然后做一步就用nfs方式去挂载启动,观察启动后的现象,并且

2021-02-01 16:16:54 735

原创 嵌入式之根文件系统原理学习笔记

注:如下内容来自朱老师物联网大讲堂课件1. 根文件系统概述1.1 为什么需要根文件系统(1)init进程的应用程序在根文件系统上(2)根文件系统提供了根目录/(3)内核启动后的应用层配置(etc目录)在根文件系统上。几乎可以认为:发行版=内核+rootfs(4)shell命令程序在根文件系统上。譬如ls、cd等命令总结:一套linux体系,只有内核本身是不能工作的,必须要rootfs(上的etc目录下的配置文件、/bin /sbin等目录下的shell命令,还有/lib目录下的库文件等···

2021-01-27 17:06:19 458

原创 嵌入式之从三星官方内核开始移植学习笔记

注:以下内容来自朱老师物联网大讲堂课件1. 内核移植初体验1.1 三星官方移植版内核获取从网盘下载源码包,这个文件最初是来自于三星的SMDKV210开发板附带的光盘资料1.2 构建移植环境(1)删除多余的文件(主要是arch下的无关文件),Windows下建立SI工程(2)ubuntu下解压1.3 配置编译下载尝试(1)检查并更改Makefile中ARCH和CROSS_COMPILEARCH ?= armCROSS_COMPILE ?= /usr/local/a

2021-01-18 23:09:37 340

原创 嵌入式内核移植之内核的启动过程学习笔记

注:以下内容来自朱老师物联网大讲堂课件1. 做好内核分析的准备工作1.1 删除无用文件(1)官方版本的kernel中是支持各种硬件架构、各种开发板的,因此有很多文件夹和文件和我们无关,在建立SI工程前应该删掉这些家伙。(2)我们现在分析的是开发板厂商九鼎科技移植好的针对X210开发板的kernel,因此其中一些无用文件已经被删掉了。1.2 建立SI工程并解析我们在kernel的目录下创建SI_Proj文件夹用来存放SI生成的那部分文件然后添加kernel这个目录到我们的工程中进行同步1.3

2021-01-17 22:10:58 379

原创 嵌入式内核移植之内核配置学习笔记

注:如下内容来自朱老师物联网大讲堂课件1. linux内核源码目录结构1.1 源码从哪里来(1)之前讲过,我们使用2.6.35.7版本的内核。这个版本的内核有三种:第一种是kernel.org上的官方版本,第二种是三星移植过的,第三种是九鼎X210的移植版本。我们讲课时使用第三种内核来讲解,后面的移植实验使用第二种内核来移植。(2)源码在开发板光盘中有。可以自己去linux下解压然后make distclean清理然后再次打包传输到windows下去解压分析;也可以直接去我网盘中下载我打包好的。(

2021-01-13 21:39:27 462

原创 嵌入式内核移植之话说linux内核课件整理

注:如下的内容来自朱老师物联网大讲堂课件1. 内核和发行版的区别1.1 到底什么是操作系统(1)linux、windows、android、ucos就是操作系统(2)操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程序(vmlinz、zImage)(3)操作系统的主要作用就是管理计算机硬件,给应用程序提供一个运行环境。1.2 操作系统核心功能(1)内存管理。如果没有操作系统,内存是需要程序自己来管理的。譬如在uboot中要使用内存的哪里是自己随便用的,没有注册也没有限制。这

2021-01-08 21:34:41 146

原创 C语言学习之uboot中链表的使用

本博客的目的是学习uboot中链表的使用前提:因为uboot和内核中使用链表的方式基本一致,所以我们先学习uboot中链表是如何使用的。设计思路:内核链表中自己实现了一个纯链表(纯链表就是没有数据区域,只有前后向指针)的封装,以及纯链表的各种操作函数(节点创建、插入、删除、遍历······)。这个纯链表本身自己没有任何用处,它的用法是给我们具体链表作为核心来调用。举例说明: 我们以struct mmc 为例第一步:内核中核心纯链表的实现在include/linux/list.h文件中,我们定义链

2021-01-08 19:03:39 300

原创 嵌入式之fastboot的初步学习笔记

注:如下内容参考朱老师物联网大讲堂课件1. 什么是fastboot(1)fastboot是android使用的一种刷机方法.android系统设计了2种刷机方式:fastboot和recovery。fastboot是一种线刷,就是使用USB数据线连接手机的一种刷机模式。相对于某些系统(如小米)卡刷来说,线刷更可靠,安全。recovery是一种卡刷,就是将刷机包放在sd卡上,然后在recovery中刷机的模式。(2)fastboot使用usb作为物理传输。刷机其实就是镜像传输+烧录,fastbo

2021-01-07 15:30:03 2105 1

原创 嵌入式uboot移植之从uboot官方移植

注:以下内容来自朱老师物联网大讲堂课件1. 选择合适的官方原版uboot1.1 官方原版uboot的版本(1)版本号。刚开始是1.3.4,后来变成2009.08(2)新版和旧版的差别。uboot的架构很早就定下来了,然后里面普遍公用的东西(common目录下、drivers目录下、fs目录下等···)在各个版本之间几乎是完全一样的。差别最大的是board和cpu目录,这两个目录正是单板(开发板)相关的。越新的uboot版本支持越多的开发板(CPU),所以越新的uboot越庞大。(3)并不是越新的版

2021-01-05 21:19:18 1493 1

原创 嵌入式uboot移植之三星官方uboot开始移植

注:以下内容来自朱老师物联网课件1. 移植前的准备工作1.1 获取三星移植过的uboot源代码我们使用的是老师提供的android_uboot_smdkv210.tar.bz2,文件存储在课件2.3.零距离初体验uboot部分1.2 SourceInsight准备(1)移植的时候最重要的工作就是看代码、改代码然后编译运行测试。(2)编译代码必须在linux中(windows共享文件夹中配置uboot不行的),那么看代码和改代码可以在linux中(vim、gedit)也可以在windows中(So

2020-12-20 23:29:57 626

原创 嵌入式之初步硬件驱动学习笔记

注:以下内容出自朱老师物联网大讲堂课件1.uboot与linux驱动1.1 uboot本身是裸机程序(1)裸机本来是没有驱动的概念的(狭义的驱动的概念就是操作系统中用来具体操控硬件的那部分代码叫驱动)(2)裸机程序中是直接操控硬件的,操作系统中必须通过驱动来操控硬件。这两个有什么区别?本质区别就是分层。1.2 uboot的虚拟地址对硬件操作的影响(1)操作系统(指的是linux)下MMU肯定是开启的,也就是说linux驱动中肯定都使用的是虚拟地址。而纯裸机程序中根本不会开MMU,全部使用的是物理

2020-12-16 21:17:05 543

原创 嵌入式之uboot环境变量学习笔记

注:以下内容来自朱老师物联网大讲堂课件1.uboot的环境变量基础1.1 环境变量的作用让我们可以不用修改uboot的源代码,而是通过修改环境变量来影响uboot运行时的一些数据和特性。譬如说通过修改bootdelay环境变量就可以更改系统开机自动启动时倒数的秒数。1.2 环境变量的优先级(1)uboot代码当中有一个值,环境变量中也有一个值。uboot程序实际运行时规则是:如果环境变量为空则使用代码中的值;如果环境变量不为空则优先使用环境变量对应的值。(2)譬如machid(机器码)。uboo

2020-12-15 20:09:04 732

原创 嵌入式之uboot的命令体系学习笔记

注:以下内容来自朱老师物联网大讲堂课件1.uboot命令体系基础1.1 使用uboot命令uboot启动后进入命令行环境下,在此输入命令按回车结束,uboot会收取这个命令然后解析,然后执行。1.2 uboot命令体系实现代码在哪里uboot命令体系的实现代码在uboot/common/cmd_xxx.c中。有若干个.c文件和命令体系有关。(还有command.c main.c也是和命令有关的)1.3 每个命令对应一个函数(1)每一个uboot的命令背后都对应一个函数。这就是uboot实现

2020-12-11 22:07:05 506 1

原创 嵌入式之uboot如何启动内核学习笔记

注:以下内容来自朱老师物联网大讲堂uboot课件1. uboot和内核到底是什么1.1 uboot是一个裸机程序(1)uboot的本质就是一个复杂点的裸机程序。和我们在ARM裸机全集中学习的每一个裸机程序并没有本质区别。(2)ARM裸机第十六部分写了个简单的shell,这东西其实就是个mini型的uboot。1.2 内核本身也是一个"裸机程序"(1)操作系统内核本身就是一个裸机程序,和uboot、和其他裸机程序并没有本质区别。(2)区别就是操作系统运行起来后在软件上分为内核层和应用层,分层后两

2020-12-09 16:53:52 1273

原创 嵌入式之uboot源码分析-启动第二阶段学习笔记(下篇)

接上部分---->嵌入式之uboot源码分析-启动第二阶段学习笔记(上篇)3.2.14 CFG_NO_FLASH(1)虽然NandFlash和NorFlash都是Flash,但是一般NandFlash会简称为Nand而不是Flash,一般讲Flash都是指的Norflash。这里2行代码是Norflash相关的。(2)flash_init执行的是开发板中对应的NorFlash的初始化、display_flash_config打印的也是NorFlash的配置信息(Flash: 8 MB就是这

2020-12-04 15:40:48 507

原创 嵌入式之uboot源码分析-启动第二阶段学习笔记(上篇)

注:以下内容来自朱老师物联网大讲堂在启动的第一阶段我们最后调用start_armboot,进入uboot的第二阶段,下面我们将来世第二阶段的分析。1. start_armboot函数简介1.1 一个很长的函数(1)这个函数在uboot/lib_arm/board.c的第444行开始到908行结束。(2)450行还不是全部,因为里面还调用了别的函数。(3)为什么这么长的函数,怎么不分成两三个函数?主要因为这个函数整个构成了uboot启动的第二阶段。1.2 一个函数组成uboot第二阶段1.3

2020-12-02 16:46:34 580 1

原创 如何计算内存大小

对电子产品、存储介质厂家来说,是按进率1000来计量的,即1000B=1KB 1000KB=1MB 1000MB=1GB……,也就是为什么硬盘分区后,会造成缩水(比如80G硬盘实际等于76G)的原因,因为系统是按1024进率来进行分区的。注:我们如下的讨论是按照系统的1024来说的前提:1、因为我们通常说的内存都是使用的十进制来表示的(如256MB、512MB等),所以我们计算内存大小时只需将所对应的地址转化成十进制即可。2、转换规则:1MB=1024KB ,1KB=1024Byte ,1Byte

2020-11-22 23:16:19 16699

原创 嵌入式裸机之SDRAM初始化学习笔记

注:以下内容有参考朱老师物联网大讲堂裸机部分课件1.SDRAM引入1.1 常见存储器介绍:DRAM介绍同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM),有一个同步接口的动态随机存取内存。DDR:DDR就是DDR SDRAM,是SDRAM的升级版。(DDR:double rate,双倍速度的SDRAM)DDR有好多代:DDR1 DDR2 DDR3 DDR4 LPDDR1.2 DRAM特征:1、中央处理器(CPU)与主机板

2020-11-22 21:22:48 1081

原创 mkv210_image.c的解析笔记(基于S5PV210)

背景介绍1. mkv210_image.c的作用mkv210_image.c的主要作用就是由usb启动时使用的镜像(如:led.bin)制作得到由sd卡启动的镜像(210.bin)2. 为什么要制作镜像由S5PV210的启动过程我们知道,USB启动不需要进行校验和检查,但是在SD卡启动时需要进行校验和检查(checksum OK?),并且这个信息是在16字节的Header中,所以我们就要通过usb启动时使用的镜像来制作sd卡启动的镜像。BL1必须具有头数据。头数据被iROM代码复制到内部SRAM中

2020-11-20 16:13:12 194

原创 嵌入式之uboot源码分析-启动第一阶段学习笔记

注: 以下的内容来自朱老师物联网大讲堂uboot部分课件1. start.S引入根据之前的学习经验我们知道,程序的运行肯定都要有一个入口,uboot的程序运行也是一样的,我们在裸机的部分知道了程序执行开始必须执行一段汇编代码进行相关的设定后(关看门狗、设置SVC栈、开/关icache、重定位等),才能调用C语言程序,所以这里我们要先找到汇编代码的入口。1.1 u-boot.lds中找到start.S入口(1)在C语言中整个项目的入口就是main函数(这是C语言规定的),所以譬如说一个有10000个

2020-10-21 22:45:23 1547

原创 嵌入式裸机课程之ARM体系结构复习笔记

注:如下内容以朱老师物联网大讲堂裸机课课件为基础第1节 可编程器件的编程原理1.1 电子器件的发展方向模拟器件 -> 数字器件ASIC -> 可编程器件ASICASIC是Application Specific Integrated Circuit的英文缩写,在集成电路界被认为是一种为专门目的而设计的集成电路。可编程器件早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成

2020-10-19 23:20:00 681

原创 嵌入式之uboot的配置和编译过程学习笔记

注: 以下内容来自朱老师物联网大讲堂uboot课件一、uboot的主Makefile分析1. uboot version确定VERSION = 1PATCHLEVEL = 3SUBLEVEL = 4EXTRAVERSION =U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)VERSION_FILE = $(obj)include/version_autogenerated.huboot的版本号分3个级

2020-10-18 17:58:09 695

原创 嵌入式之uboot初体验学习笔记

注:如下内容来自朱老师物联网大讲堂uboot课件1.什么是ubootU-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。更多信息参考见之前的博客嵌入式之U-B

2020-10-16 17:30:15 342

原创 嵌入式之Makefile学习笔记

注: 以下内容来自朱老师物联网大讲堂课件1. 为什么需要Makefile工程项目中c文件太多管理不方便,因此用Makefile来做项目管理,方便编译链接过程。在一个正式的软件项目中,由很多个.c和.h文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c d.c e.c f.c g.c -o exe 每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,所以我们就使用Makefile来进行管理makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make

2020-10-15 21:20:11 871

原创 嵌入式之shell练习

1. shell介绍在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。1.1 shell是操作系统的终端命令行(1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一种方式。(2)我们可以使用shell和操作系统、uboot等软件系统进行交互。具体来说就是我们通过shell给软件系统输入命令然后回车执行,执行完成后又

2020-10-15 11:12:36 453

原创 嵌入式之U-Boot学习前传学习笔记

注: 如下内容来自朱老师物联网大讲堂uboot课件整理1. 为什么要有uboot(Universal Boot Loader)(1)uboot主要作用是用来启动操作系统内核。(2)uboot还要负责部署整个计算机系统。(3)uboot中还有操作Flash等板子上硬盘的驱动。(4)uboot还得提供一个命令行界面供人来操作。1.1 计算机系统的主要部件(1)计算机系统就是有CPU来做核心进行运行的系统。典型的计算机系统有:PC机(台式机+笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家

2020-10-10 09:02:44 715

原创 S5PV210的开发板刷机

1. S5PV210 的启动框图分析总结: 通过如上框图我们可以发现:v210在启动过程中会先根据OM pin选择是那种启动方式,然后再去判断确认1st是否可以启动(通过校验和的方式checksum判断是否能成功启动),如果第一次启动失败,就会进入second启动。刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。2. 什么是刷系统刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。有2种烧写方法:一种是在windows中用刷卡

2020-10-09 10:07:30 478

原创 嵌入式C语言高级之杂散问题

注: 以下内容来自朱老师物联网大讲堂C高级1. 操作系统究竟是个什么玩意?1.1 像人类社会一样的计算机软件系统(1)人类社会最开始时人人都干活,这时候没有专业分工,所有人都直接做产生价值的工作。当时是合适的,因为当时生产力低下,人口稀少。这就像裸机程序一样(裸机程序的特点是:代码量小,功能简单、所有代码都和直接目的有关,没有服务性代码)。(2)后来人口增加生产力提高,有一部分人脱离了直接产生价值的体力劳动专职指挥(诞生了阶级)。本质上来说是合理的,因为资源得到了更大限度的使用,优化了配置,提升了整

2020-09-30 09:11:07 350

原创 嵌入式C语言高级之存储类、作用域、生命周期和链接属性

注: 以下内容来自朱老师物联网大讲堂C语言课件1. 概念解析1.1 存储类(1)存储类就是存储类型,也就是描述C语言变量在何种地方存储。(2)内存有多种管理方法:栈、堆、数据段、bss段、.text段······一个变量的存储类属性就是描述这个变量存储在何种内存段中。譬如:局部变量分配在栈上,所以它的存储类就是栈;显式初始化为非0的全局变量分配在数据段,显式初始化为0和没有显示初始化(默认为0)的全局变量分配在bss段。1.2 作用域(1)作用域是描述这个变量起作用的代码范围。(2)基本来说

2020-09-24 22:02:39 182

原创 嵌入式C语言高级之预处理、函数、函数库

**注:**如下内容来自朱老师物联网大讲堂C语言高级一、预处理1.C语言预处理理论1.1 由源码到可执行程序的过程(1)源码.c->(编译)->elf可执行程序(2)源码.c->(编译)->目标文件.o->(链接)->elf可执行程序(3)源码.c->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf可执行程序(4)源码.c->(预处理)->预处理过的.i源文件->(编译)-&gt

2020-09-23 17:40:29 577

原创 嵌入式C语言进阶学习笔记

1.数据类型1.1 基本数据类型数据类型分2类:基本数据类型+复合类型基本类型:charshortintlongfloatdouble复合类型:数组 结构体 共用体 类(C语言没有类,C++有)1.2 内存占用与sizeof运算符数据类型就好像一个一个的模子,这个模子实例化出C语言的变量。变量存储在内存中,需要占用一定的内存空间。一个变量占用多少空间是由变量的数据类型决定的。每种数据类型,在不同的机器平台上占用内存是不同的。我们一般讲的时候都是以32位CPU为默认硬件平台来描述:

2020-09-06 15:45:18 691

原创 Linux中C语言程序编译过程

如下内容参考链接为:https://www.cnblogs.com/wangshaowei/p/11279838.htmlhttps://blog.csdn.net/chun_1959/article/details/43731937在此对作者的付出表示感谢!Linux程序编译过程程序编译就是要将高级语言如C语言转化成计算机能识别的二进制文件的过程,所以我们一般分为如下四个步骤预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)

2020-09-04 12:28:28 408

原创 嵌入式C语言基础学习笔记

1. 经典入门:hello world#include<stdo.h>int main(){ printf("hello world!\n"); //打印hello world!}1.1 概念源文件:源文件即源代码文件,C语言源文件后缀名是.c。头文件:头文件后缀名为.h(head,头),C语言代码由源文件和头文件组成。关键字:关键字是C语言征用了的一些字,这些字在C语言中代表特殊含义,已经被C语言定义好了。每个关键字都有自己特定的含义,我们必须搞懂每个关键字的所有含义和用法

2020-09-03 22:09:09 771

原创 嵌入式裸机之触摸屏touch学习笔记

一. 输入类设备简介1.1 input/outputIO输入输出,是计算机系统中的一个概念。计算机的主要功能就是从外部获取数据然后进行计算加工得到输出数据并输出给外部(计算机可以看成数据处理器)。计算机和外部交互就是通过IO。每一台计算机都有个标准输入和标准输出。1.2 常见输入类设备键盘、鼠标、触摸屏、游戏摇杆、传感器等(摄像头并不是一个典型的输入类设备)1.3 触摸屏的特点(1)触摸屏和人的关系很紧密,尤其是电容式触摸屏,相对来说比较方便操作(2)触摸屏和显示器关系也很紧密,通过显示器和t

2020-08-27 21:45:33 1817

原创 嵌入式裸机之LCD学习笔记

前期准备一 . LCD简介1.1 什么是LCD?(1)LCD(Liquid Crystal Display)俗称液晶.(2)液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转,旋转时会影响透光性,因此我们可以在整个液晶面板后面用白光照(称为背光),可以通过不同电信号让液晶分子进行选择性的透光,此时在液晶面板前面看到的就是各种各样不同的颜色,这就是LCD显示。(3)被动发光和主动发光。有些显示器(譬如LED显示器、CRT显示器)自己本身会发光称为主动发光,有些(LCD)本

2020-08-26 23:20:07 2354

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除