STM32学习笔记---TFT-LCD

2023-11-14

一、常见显示器介绍

1、显示器分类

        ~~~~~~~        显示器属于计算机的 I/O 设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具

常见显示器有三类:

  • CRT显示器
  • LCD液晶显示器
  • LED点阵显示器

1.1、CRT显示器

        ~~~~~~~        CRT显示器:CRT显示器是靠电子束激发屏幕内表面的荧光粉来显示图像的,由于荧光粉被点亮后很快会熄灭,所以电子枪必须循环地不断激发这些点。
在这里插入图片描述

1.2、LCD液晶显示器

        ~~~~~~~        LCD显示器:液晶显示器,简称 LCD(Liquid Crystal Display),相对于上一代 CRT显示器,LCD 显示器具有功耗低、体积小、承载的信息量大及不伤眼的优点,因而它成为了现在的主流电子显示设备,其中包括电视、电脑显示器、手机屏幕及各种嵌入式设备的显示器。
在这里插入图片描述
液晶显示器的显示结构:
        ~~~~~~~        液晶是一种介于固体和液体之间的特殊物质,它是一种有机化合物,常态下呈液态,但是它的分子排列却和固体晶体一样非常规则,因此取名液晶。如果给液晶施加电场,会改变它的分子排列,从而改变光线的传播方向,配合偏振光片,它就具有控制光线透过率的作用,再配合彩色滤光片,改变加给液晶电压大小,就能改变某一颜色透光量的多少
        ~~~~~~~        利用这种原理,做出可控红、绿、蓝光输出强度的显示结构,把三种显示结构组成一个显示单位,通过控制红绿蓝的强度,可以使该单位混合输出不同的色彩,这样的一个显示单位被称为像素。
在这里插入图片描述
注意: 液晶本身是不发光的,所以需要有一个背光灯提供光源

1.3、LED点阵显示器

        ~~~~~~~        LED点阵彩色显示器的单个像素点内包含红绿蓝三色LED灯,通过控制红绿蓝颜色的强度进行混色,实现全彩颜色输出,多个像素点构成一个屏幕。由于每个像素点都是LED灯自发光的,所以在户外白天也显示得非常清晰,但由于LED灯体积较大,导致屏幕的像素密度低,所以它一般只适合用于广场上的巨型显示器。相对来说,单色的LED点阵显示器应用得更广泛,如公交车上的信息展示牌、店广告牌等。
在这里插入图片描述

1.4、OLED显示器:

        ~~~~~~~        新一代的OLED显示器与LED点阵彩色显示器的原理类似,但由于它采用的像素单元是“有机发光二极管”(Organic Light Emitting Diode),所以像素密度比普通LED点阵显示器高得多
OLED显示器不需要背光源、对比度高、轻薄、视角广及响应速度快等优点。待到生产工艺更加成熟时,必将取代现在液晶显示器的地位。
在这里插入图片描述

2、显示器的基本参数

  • 像素
    像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点,即前面讲解液晶原理中提到的一个显示单元。

  • 分辨率
    一些嵌入式设备的显示器常常以“行像素值x列像素值”表示屏幕的分辨率。如分辨率800x480表示该显示器的每一行有800个像素点,每一列有480个像素点,也可理解为有800列,480行。

  • 色彩深度
    色彩深度指显示器的每个像素点能表示多少种颜色,一般用“位”(bit)来表示。如单色屏的每个像素点能表示亮或灭两种状态(即实际上能显示2种颜色),用1个数据位就可以表示像素点的所有状态,所以它的色彩深度为1bit,其它常见的显示屏色深为16bit、24bit。
    在这里插入图片描述

  • 显示器尺寸
    显示器的大小一般以英寸表示,如5英寸、21英寸、24英寸等,这个长度是指屏幕对角线的长度, 通过显示器的对角线长度及长宽比可确定显示器的实际长宽尺寸

  • 显存
    液晶屏中的每个像素点都是数据,在实际应用中需要把每个像素点的数据缓存起来,再传输给液晶屏,一般会使用 SRAM 或 SDRAM 性质的存储器,而这些专门用于存储显示数据的存储器,则被称为显存。显存一般至少要能存储液晶屏的一帧显示数据

    如分辨率为 800x480 的 液 晶 屏 使 用 RGB888 格 式 显 示 , 它 的 一 帧 显 示 数 据 大 小 为 :3x800x480=1152000 字 节 ;若 使 用 RGB565 格 式 显 示 , 一 帧 显 示 数 据 大 小 为 :2x800x480=768000 字节。

    一般来说,外置的液晶控制器会自带显存,而像 STM32F429等集成液晶控制器的芯片可使用内部 SRAM或外扩 SDRAM用于显存空间

3、TFT-LCD控制框图

        ~~~~~~~        STM32F429 系列的芯片不需要额外的液晶控制器,也就是说它把专用液晶控制器的功能集成到STM32F429 芯片内部了,可以理解为电脑的 CPU集成显卡。而 STM32F407 系列的芯片由于没有集成液晶控制器到芯片内部,所以它只能驱动自带控制器的屏幕,可以理解为电脑的外置显卡。
在这里插入图片描述

二、TFT-LCD控制原理

1、TFT-LCD结构

完整的显示屏由液晶显示面板、电容触摸面板以及 PCB底板构成

  • 液晶显示面板
    用于显示图像,文字的彩色显示设备
  • 触摸面板
    触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯,触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体
  • PCB底板
    PCB 底板上可能会带有“液晶控制器芯片”因为控制液晶面板需要比较多的资源,所以大部分低级微控制器都不能直接控制液晶面板,需要额外配套一个专用液晶控制器来处理显示过程,外部微控制器只要把它希望显示的数据直接交给液晶控制器即可。而不带液晶控制器的 PCB底板 ,只有小部分的电源管理电路,液晶面板的信号线与外部微控制器相连,直接控制。
    在这里插入图片描述

2、两种常见的TFT-LCD屏

在这里插入图片描述

3、TFT-LCD控制框图

        ~~~~~~~        STM32F429 系列的芯片不需要额外的液晶控制器,也就是说它把专用液晶控制器的功能集成到 STM32F429 芯片内部了,可以理解为电脑的 CPU集成显卡。而 STM32F407 系列的芯片由于没有集成液晶控制器到芯片内部,所以它只能驱动自带控制器的屏幕,可以理解为电脑的外置显卡。
在这里插入图片描述

4、RGB-LCD控制原理

液晶面板的控制信号线(不带液晶控制器):
在这里插入图片描述
在这里插入图片描述

5、RGB-LCD控制原理

  • RGB信号线
            ~~~~~~~        RGB信号线各有8根,分别用于表示液晶屏一个像素点的红、绿、蓝颜色分量。使用红绿蓝颜色分量来表示颜色是一种通用的做法,打开Windows系统自带的画板调色工具,可看到颜色的红绿蓝分量值,常见的颜色表示会在“RGB”后面附带各个颜色分量值的数据位数
            ~~~~~~~        如RGB565表示红绿蓝的数据线数分别为5、6、5根,一共为16个数据位,可表示216种颜色;
            ~~~~~~~        如果液晶屏的种颜色分量的数据线有8根,那它表示RGB888格式,一共24位数据线,可表示的颜色为224种。

    在这里插入图片描述
  • 同步时钟信号CLK
    液晶屏与外部使用同步通讯方式,以CLK信号作为同步时钟,在同步时钟的驱动下,每个时钟传输一个像素点数据。
  • 水平同步信号HSYNC
    水平同步信号HSYNC(Horizontal Sync)用于表示液晶屏一行像素数据的传输结束,每传输完成液晶屏的一行像素数据时,HSYNC会发生电平跳变,如分辨率为800x480的显示屏(800列,480行),传输一帧的图像HSYNC的电平会跳变480次。
  • 垂直同步信号VSYNC
    垂直同步信号VSYNC(Vertical Sync)用于表示液晶屏一帧像素数据的传输结束,每传输完成一帧像素数据时,VSYNC会发生电平跳变。其中“帧”是图像的单位,一幅图像称为一帧,在液晶屏中,一帧指一个完整屏液晶像素点。人们常常用“帧/秒”来表示液晶屏的刷新特性,即液晶屏每秒可以显示多少帧图像,如液晶屏以60帧/秒的速率运行时,VSYNC每秒钟电平会跳变60次。
  • 数据使能信号DE
    数据使能信号DE(Data Enable)用于表示数据的有效性,当DE信号线为高电平时,RGB信号线表示的数据有效。
  • LCD数据传输时序
    在这里插入图片描述
  • LCD数据传输时序
    在这里插入图片描述
    注:液晶屏显示的图像可看作一个矩形,液晶屏有一个显示指针,它指向将要显示的像素。显示指针的扫描方向方向从左到右、从上到下,一个像素点一个像素点地描绘图形。这些像素点的数据通过RGB数据线传输至液晶屏,它们在同步时钟CLK的驱动下一个一个地传输到液晶屏中,交给显示指针,传输完成一行时,水平同步信号HSYNC电平跳变一次,而传输完一帧时VSYNC电平跳变一次。
  • LCD数据传输时序参数
    液晶显示指针在行与行之间,帧与帧之间切换时需要延时,而且HSYNC及VSYNC信号本身也有宽度,这些时间参数说明见下表:
    在这里插入图片描述

三、SSD1963液晶控制器

1、液晶控制器SSD1963

1.1、液晶控制器

        ~~~~~~~        液晶驱动芯片或LCD驱动器,其内部有着较大的缓存空间可以存储文字、图像等数据,并能够将这些信息送入液晶模块进行显示,由于专用的芯片,因此速度往往比较快。
        ~~~~~~~         LCD驱动芯片的主要功能就是对主机发送过来的数据/命令,进行变换,变成每个像素的RGB数据,使之在屏幕上显示出来。常见的液晶驱动芯片有ILI932、ILI9328、SSD1963、HX8347、ILI9341、NT5510等
在这里插入图片描述

1.2、SSD1963特性

内部包含1215KB frame buffer
支持分辨率为864*480的显示屏
支持像素位深为24bpp的显示模式(RGB888)
在这里插入图片描述
在这里插入图片描述

1.3、SSD1963内部框图

在这里插入图片描述
注:液晶屏内部包含SSD1963控制器,该控制器使用 8080 接口与单片机通讯

2、STM32与LCD的电气连接

在这里插入图片描述

2.1、8080时序-写数据/命令

在这里插入图片描述
注:STM32通过8080接口与SSD1963 芯片进行通讯,实现对液晶屏的控制。通讯的内容主要包括命令和显存数据,显存数据即各个像素点的 RGB565 内容;命令是指对 SSD1963的控制指令,MCU 可通过8080接口发送命令编码控制 SSD1963的工作方式,例如复位指令、设置光标指令、睡眠。

  • 用GPIO管脚模拟8080时序
void LCD_WR_Byte(uint8_t dat,  uint8_t cmd)
{
   LCD_Data_Out(dat);        //放入数据	
  if(cmd)			
    	 LCD_DC_Set();	      //传命令	    
  else			
   	  LCD_DC_Clr();            //传数据

  LCD_CS_Clr();	     //拉低片选
  LCD_WR_Clr();           //写使能
  LCD_WR_Set();    //WR产生上升沿,数据锁存		
  LCD_CS_Set();           //取消片选	
  LCD_DC_Set();          //复位DC信号线    
}

2.2、FMSC-模拟8080时序

在这里插入图片描述
Tpwcsl = ADDSET + DATAST +1 > 30      ~~~~      建议适当取大一点点
TCS = ADDSET > 2 ns                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               ADDSET = 1
TPWLW = DATAST +1 > 12ns                     ~~~~~~~~~~~~~~~~~~~                     DATAST = 3
在这里插入图片描述
        ~~~~~~~        对于FSMC和8080接口,前四种信号线都是完全一样的,仅仅是FSMC的地址信号线A[25:0]与8080的数据/命令选择线D/C#有区别。
        ~~~~~~~        为了模拟出8080时序,我们可以把FSMC的A0地址线与SSD1963芯片8080接口的D/C#信号线连接,那么当A0为高电平时(即D/C#为高电平),数据线D[15:0]的信号会被SSD1963理解为数值,若A0为低电平时(即D/C#为低电平),传输的信号则会被理解为命令。

2.3、如何控制A0(即控制DC线)

在这里插入图片描述
注:LCD控制器的片选连入到FSMC的NE4管脚。所以当发出0x6C00 0000-0x6FFF FFFF之间的地址时NE4输出低电平,选中LCD控制器

2.4、如何控制A0(即控制DC线)

        ~~~~~~~        在实际控制时,以上地址计算方式还不完整,根据《STM32 参考手册》对 FSMC 访问NOR FLASH 的说明STM32 内部访问地址时使用的是内部 HADDR 总线, HADDR[25:0] 包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。
在这里插入图片描述
注:实际控制A0时:
把前面的地址<<1就可以了
0x6C000000 低电平表示命令
0x6C000002 高电平表示数据

四、LCD测试程序讲解

1、CubeMx配置

1.1、时钟配置

在这里插入图片描述
在这里插入图片描述

1.2、FSMC管脚配置

在这里插入图片描述
在这里插入图片描述

2、代码详解

2.1、LCD驱动文件

以地址区分数据还是指令
在这里插入图片描述

2.2、初始化函数

在这里插入图片描述
在这里插入图片描述

2.3、清屏函数

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.4、填充函数

在这里插入图片描述
在这里插入图片描述
其余画矩形画圆都可以查看LCD.c文件。

3、LCD显示图片和中英文字符

3.1、将图片转换成图片数据

使用软件Image2Lcd软件
在这里插入图片描述
点击保存生成,注意图片c文件名称,后面要用
在这里插入图片描述

将其放到项目文件inc
在这里插入图片描述

3.2、调用图片显示函数

在main函数中包含testimage.h
在这里插入图片描述
调用图片显示函数
在这里插入图片描述
在这里插入图片描述
下载到控制板查看效果

3.3、LCD显示中英文

        ~~~~~~~        与显示图片类似,我们只需要把显示字体的每个像素的颜色数据依次写入LCD的frame buffer中即可。因此我们首先可以获取字体字幕的像素数据

  • 字符编码:
    由于计算机只能识别0和1,文字也只能以0和1的形式在计算机里存储,所以我们需要对文字进行编码才能让计算机处理,编码的过程就是规定特定的01数字串来表示特定的文字,最简单的字符编码例子是ASCII码。
  • ASCII码:
    标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
    在这里插入图片描述
    在这里插入图片描述
  • GB2312标准:
    我国首先定义的是GB2312标准。它把ASCII码表127号之后的扩展字符集直接取消掉,并规定小于127的编码按原来ASCII标准解释字符。当2个大于127的字符连在一起时,就表示1个汉字,第1个字节使用 (0xA1-0xFE) 编码,第2个字节使用(0xA1-0xFE)编码,这样的编码组合起来可以表示了7000多个符号,其中包含6763个汉字。

其他中文编码:

  • BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。
  • GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。
  • GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。
  • Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

3.4、字模

        ~~~~~~~        仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模。如下图所示(size = 16*16)
字模的数据表示
        ~~~~~~~        已知字模是图形数据,而图形在计算机中是由一个个像素点组成的,所以字模实质是一个个像素点数据。为方便处理,我们把字模定义成方块形的像素点阵,且每个像素点只有 0和 1这两种状态.。我们用1个数据位记录一个像素点的状态,把有笔迹的点以“1”表示,无笔迹像素点以“0”表示即可。这样一个汉字图形,使用 16x16/8=32 个字节来就可以记录下来。

  • 取字幕软件-PCtoLCD2002
    在这里插入图片描述
    在这里插入图片描述

3.5、显示字符函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32学习笔记---TFT-LCD 的相关文章

  • RAM 存储二进制数和汇编语言的冒泡排序

    我必须使用 ARM v7 执行一个例程 在 RAM 内存中存储 10 个二进制数 然后使用冒泡排序对这些数字从高到低进行排序 我应该如何开始 func bubbleSortAscendingU32 ldr r3 r0 4 mov r1 9
  • 将 GCC 内联汇编与采用立即值的指令结合使用

    问题 我正在为 ARM Cortex M3 处理器开发定制操作系统 为了与我的内核交互 用户线程必须生成 SuperVisor Call SVC 指令 以前称为 SWI 用于软件中断 该指令在ARM ARM中的定义是 这意味着该指令需要即时
  • Linux malloc() 在 ARM 和 x86 上的行为是否不同?

    这个网站上有很多关于内存分配的问题 但是我 找不到专门解决我的问题的人 这 问题 https stackoverflow com questions 19148296 linux memory overcommit details似乎最接近
  • 源和目标具有不同的 EABI 版本

    我正在尝试使用 ARM 工具链编译 so 文件 但是我不断收到这个错误 错误 源对象的 EABI 版本为 0 但目标对象的 EABI 版本为 5 我无法更改工具链中的任何内容 因为我必须使用给定的工具链 我以前从未见过这个错误 我使用了这个
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能
  • 基于 Windows 8 ARM 的平板电脑上的 VB6

    随着 Windows 8 将支持 VB6 我的问题是 Microsoft 是否在任何地方表示 是或否 VB6 应用程序将在基于 ARM 的平板电脑上运行 如果没有 是否有任何 ARM 模拟器 以便我们可以在 Windows 8 ARM 平板
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM
  • Qemu flash 启动不起作用

    我有一本相当旧的 2009 年出版 嵌入式 ARM Linux 书 其中使用u boot and qemu 的用法qemu与u boot书中对二进制的解释如下 qemu system arm M connex pflash u boot b
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 英特尔的最后分支记录功能是英特尔处理器独有的吗?

    最后分支记录是指存储与最近执行的分支相关的源地址和目标地址的寄存器对 MSR 的集合 它们受英特尔酷睿 2 英特尔至强和英特尔凌动处理器系列的支持 http css csail mit edu 6 858 2012 readings ia3
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • ARM Cortex-M3 启动代码

    我试图了解 STM32 微控制器的 Keil realview v4 附带的初始化代码是如何工作的 具体来说 我试图了解堆栈是如何初始化的 In the 文档 http infocenter arm com help index jsp t
  • 为什么前向引用 ADR 指令在 Thumb 代码中以偶数偏移进行汇编?

    To bx对于 Thumb 函数 需要设置地址的最低有效位 GNU 作为文档states https sourceware org binutils docs as ARM Opcodes html当地址是从一个生成时这是如何工作的adr伪
  • ARM 汇编:从 STDIN 获取字符串

    我目前正在学习 CS 课程 我们刚刚开始在 Raspberry Pi 上使用 ARM Assembly 事实证明这相当困难 想知道是否有人可以提供帮助 我当前的任务是从 stdin 获取一个字符串 使用 scanf 并计算其中的字符数 然后
  • 已编译 LKM 的互换性

    是否可以使用可加载内核模块 编译为3 0 8 mod unload ARMv5 我自制的内核 在具有版本的内核中3 0 31 gd5a18e0 SMP preempt mod unload ARMv7 安卓股票内核 该模块本身几乎不包含任何
  • GCC 变量映射和 MISRA-C

    我主要知道两种使用 GCC 声明内存映射寄存器的方法 有许多变体 使用双字段 每个外设的数据结构等 要么使用初始化为正确地址的指针 例如volatile uint32 t pMyRegister uint32 t 0xDEADBEEFUL
  • 2022年Android CPU架构分布(armeabi-v7a vs arm64-v8a)

    有没有关于 2022 年 Android 设备上的架构使用情况的官方信息 我有一个支持armeabi v7a 和arm64 v8a 的应用程序 我想要放弃对armeabi v7a的支持并且仅支持 64 位设备 arm64 v8a 但我找不到
  • 在 ARM Cortex-M3 中使用 newlib 的 malloc

    我正在为 ARM Cortex M3 NXP 的 LCP17xx 创建代码 到目前为止我一直在使用静态内存 一切都运行良好 我尝试添加动态内存支持 但是一旦调用 malloc 系统就会卡住 我正在使用 gcc 为 Arm Bare Meta

随机推荐

  • 基于Unity3d 引擎的Android游戏优化

    最近项目进入收尾阶段 之前对项目做了很多优化 mesh合并 减少DrawCall和模型骨骼以及物理计算 合并材质球 优化代码等等 在IOS上还好 但是Android上 试过几款手机 从低端到高端 发现性能还是很差 所以又花了几天来研究摸索
  • C#中索引器

    C 中索引器和数组的使用类似 public class Test private readonly string name new string 10 public string this int index get return name
  • 【论文速览】根据人脑fMRI信号重建图像 Image Reconstruction from human brain activity

    文章目录 前言 文章一 研究背景 主要方法 部分实验结果 总结与思考 参考资料 文章二 研究背景 主要方法 部分实验结果 总结与思考 前言 人类的视觉神经系统对于真实世界的视觉刺激有着非凡的感知与理解能力 比如我们能够准确地识别物体距离和三
  • (java 基础知识) Java 安全套接字--javax.net.ssl

    有关SSL的原理和介绍在网上已经有不少 对于Java下使用keytool生成证书 配置SSL通信的教程也非常多 但如果我们不能够亲自动手做一个SSL Sever和SSL Client 可能就永远也不能深入地理解Java环境下 SSL的通信是
  • leetcode-2 Add Two Numbers(两数相加)

    题目描述 给出两个 非空 的链表用来表示两个非负的整数 其中 它们各自的位数是按照 逆序 的方式存储的 并且它们的每个节点只能存储 一位 数字 如果 我们将这两个数相加起来 则会返回一个新的链表来表示它们的和 您可以假设除了数字 0 之外
  • 下一个区块链风口必备——跨链互操作

    Moonbeam是首个原生的跨链消息开发者平台 旨在通过结合波卡生态独有的XCM技术和Moonbeam首创的预编译技术为用户带来无缝且丝滑的跨链互操作性体验 让用户在无意中享受多链部署带来特色的同时消除链与链之间的隔阂 除外 Moonbea
  • uboot启动流程分析

    FS4412 SOC的启动过程 在图中有 Cortax A9 其是芯片核心 也就是中央处理器 CPU Internal Rom 是一个只读存储器 里面存储了代码 总大小为64K 它的功能是用于读写pin脚 其作用是用来告诉系统从何处去读取u
  • #13文献学习--边缘计算的计算卸载建模综述

    文献 A survey on computation offloading modeling for edge computing 一 介绍 边缘计算 在网络边缘 代表云服务的下游数据和代表物联网服务的上游数据上执行计算 优势 计算或云计算
  • 【react】state的总结

    state是组件对象最重要的属性 值是对象 组件被称为 状态机 通过更新组件的state来更新对应的页面显示 重新渲染组件 组件中render方法中的this指向组件的实例对象 组件自定义的方法中的this指向undefined 如何解决
  • ffpmeg相对无损转换mkv到mp4,保留标签、封面等元数据

    其实这个无损是相对无损 不是绝对无损 因为mkv封装支持的格式 标签等是比mp4封装要多的 比如mkv可以封装wav音频 mp4不能封装wav音频 所以这里的无损的前提是该mkv的媒体流 标签 TAG 封面图等 都是Mp4本身支持的 才能无
  • 图(基本概念)

    本章重点 图的基本概念和基本性质 图的存储结构 邻接矩阵 邻接表 邻接多重表 十字链表 及其特性 存储结构之间的转化 基于存储结构上的遍历操作和各种应用 拓扑排序 最小生成树 最短路径 关键路径 等 算法难度大 主要掌握深度优先搜索和广度优
  • otsu算法

    otsu法 最大类间方差法 有时也称之为大津算法 使用的是聚类的思想 把图像的灰度数按灰度级分成2个部分 使得两个部分之间的灰度值差异最大 每个部分之间的灰度差异最小 通过方差的计算来寻找一个合适的灰度级别 来划分 所以 可以在二值化的时候
  • 【Redis】缓存问题

    用户数据一般都是存储在数据库中 数据库则落在磁盘上 而磁盘的I O速度是计算机中最慢的硬件 当用户的访问量在某一个时间段突然上升 数据库就很容易崩溃 为了避免用户直接访问数据库 所以会使用缓存数据库 Redis 作为缓冲层 Redis 是内
  • mysql topn_TopN语句

    TopN语句常用于计算实时数据中对某个指标的最大或者最小的前N个数据的筛选 Flink SQL可以基于 OVER窗口操作灵活地完成TopN的工作 语法 SELECT FROM SELECT ROW NUMBER OVER PARTITION
  • 基于FPAG高精度频率与电压测量系统

    基于FPAG高精度频率与电压测量系统 1 系统功能与组成 本次设计的是一个测量频率与电压的系统 其中方波频率范围 在5k 50k内可以精确到小数点后两位测量原理为计算待测频率的周期 电压采用12位双路AD 采样频率为50Mhz 测量的值通过
  • 使用 UpdatePanel

    1 概述 ASP NET UpdatePanel 控件能让你创建丰富的 以客户为中心的 Web 应用程序 使用 UpdatePanel 控件 可以刷新选择的页面部分而不是使用回发来刷新整个页面 这就像是执行了一个局部页面更新一样 包含一个
  • 删除指定文件夹内创建时间24小时之外的所有文件

    File dir new File D dir File list dir listFiles for File file list if new Date getTime file lastModified gt 24 60 60 100
  • 2013我国软件业务收入百强企业揭晓 华为夺冠 (zz)

    z 2013 07 10 10 01 59 IS2120 BG57IV3 T4270528460 K T280 L4220 R118 V3466 新华网5月14日消息 2013年 第十二届 软件前百家企业业务收入达3667亿元 华为 海尔
  • redis扣库存-秒杀活动使用

    简单利用redis的LUA脚本功能 一次性操作 实现原子性扣减库存 注释都写得明白 大家凑合着看吧 没有增加库存 直接是初始化一次库存量 后面等过期失效 特别注意一点 就是在集群模式下 需要解决依赖问题 第二个是 序列化的时候 需要把int
  • STM32学习笔记---TFT-LCD

    一 常见显示器介绍 1 显示器分类 显示器属于计算机的 I O 设备 即输入输出设备 它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具 常见显示器有三类 CRT显示器 LCD液晶显示器 LED点阵显示器 1 1 CRT显示器