OLED显示模块驱动原理及应用

2023-11-03

OLED显示模块驱动原理及应用

 

本文以中景园OLED显示模块为例,介绍模块的应用和OLED显示及驱动的基本原理。文中介绍了显示模块、SSD1306驱动芯片以及GT20L16S1Y字库芯片相关技术内容及原理,并加上了作者的理解和应用记录。

一、 模块介绍

1.   OLED显示屏基础

显示屏的发光单元是有机聚合物发光二级管,即organic/polymer light emitting diode,简称 OLED。单色屏的一个像素就是一个发光二极管。OLED是“自发光”,像素本身就是光源,所以对比度极高,显示效果很犀利,绝无朦朦胧胧、拖泥带水之感,深受爱好者追捧,可惜当前技术所限,无法大尺寸化,价格也比TFT液晶屏高得多。

OLED分PMOLED、AMOLED两种,PMOLED为无源驱动,AMOLED为有源驱动。本文介绍的模块显示屏为PMOLED。

 

2.         模块基本信息

模块外观如图1,型号为QG-2864KLBEG01,尺寸见图2。本模块显示颜色为1/4黄+3/4蓝,但仍属于单色屏,另有“蓝+白”组合色可选。模块接口为8个插针,针脚定义已印在板上,使用串行SPI协议。因为板载稳压芯片U2,模块供电电压可以是3-5V。模块自带中文字库芯片。

OLED显示模块驱动原理及应用



图1.模块正面及反面

OLED显示模块驱动原理及应用



图2.模块尺寸图

 

3.   模块器件及元件简介

  1)  OLED显示屏:128*64点阵OLED单色屏。下文简称为显示屏、屏、OLED屏。

  2)  SSD1306驱动芯片:模块上直接看不到,芯片封装在显示屏背面玻璃基板上。

  3)  GT20L16S1Y字库芯片:内部固化了8套字符的点阵数据,90%的容量都用来存储中文字库。

  4)  接口及电源配置电路:8路插针,板载低压差降压稳压芯片662K。

  5)  PCB板及若干外围电阻电容元件。模块厂家已做好外围电路,不用再操心硬件电路。

 

4.   模块电路图

 

OLED显示模块驱动原理及应用
 

图3、模块电原理图

 

供电:模块供电输入端为VCC_IN,经U2降压后供U1、U4等电路。OLED屏驱动需要7-7.5V电压,由SSD1306内置电荷泵升压后提供。

接口:SSD1306支持并行、SPI及I2C等串行协议,本模块通过BS0-BS2这三个引脚接地,已设置为SPI协议,与U4汉字库芯片共享SPI接口,工作时通过芯片的片选引脚来区分,读写时应将目标芯片的CS引脚置为低电平。

其他外围电路:R5=910K,设置恒流源参考电流;R6、R7为数据线上拉电阻;RES#接复位电路,其他电路参见驱动芯片数据手册。

 

二、 显示屏及驱动的电气连接

 

1.  显示屏尺度及引脚

本模块显示区域尺寸为:宽21.744毫米,高10.864毫米,因此有效显示面积为2.36平方厘米,作为对比,一元硬币的面积为4.9平方厘米,整个模块也仅一个硬币大小,不要被网上放大的图片所误导。就在这2.36平方厘米的面积里,做进了8192个发光二级管,每个发光点就是一个像素,这些点组成了一个“阵列”,因此也叫“点阵”。点阵分成128列,64行,每个像素尺寸仅0.154*0.154毫米,像素间距0.016毫米。进入这种尺度,用微米作单位更合适。

OLED显示模块驱动原理及应用

 

 

图4.显示屏像素示意图

 

显示屏有8192个像素,每个发光点都有正负两个电极,全部引出8192*2个驱动电极是不现实的,实际做法是把每列的正极都接在一起引出一个电极,定义为一个段(SEG),把每行的负级接在一起引出一个电极,定义为一个公共极(COM),这样128*64的点阵,只需要引出128个段引脚、64个公共极引脚、一共有192个引脚就可以了。

 

2.   驱动芯片的尺度及引脚

驱动芯片SSD1306尺寸很小,只有6.76X0.86毫米,长条形,四周一圈上有281个引脚,为提高导电率,这些引脚都是镀金的,可能是纯金的,厚度也就几个微米。这些引脚很瘦弱,尺度在30-80微米间。芯片上的几个十字形或圆孔形的对标孔,是安装时与玻璃基板上电极精确定位用的。

 

OLED显示模块驱动原理及应用



图5. 驱动芯片SSD1306尺寸示意图

 

281个引脚中,192个引脚就是专门伺候那块屏的,还有30个引脚通过 “柔性电路板”接在本模块的印制线路板上,相关外围器件均已焊接好。仅有4个脚最终通过模块的插针提供给用户:数据、时钟、片选和指令数据脚,简化了使用。其他一些引脚用于供电,还有一些未被使用。

 

3.   COG封装技术

驱动芯片与显示屏的192路“微米”级电气连接,传统PCB布线只能羞愧退场,代之于COG封装技术,即clip on glass,安装时,引脚一一对应后,通过热压方式直接把芯片“粘”在屏的玻璃基板上。这个粘芯片的粘合剂称为ACF,是一种各向异性的导电胶,在垂直方向上导电、而在水平方向绝缘。ACF技术细节不太清楚,但好处显而易见:可以整排引脚涂胶而不用担心电极间短路。

30个控制引脚,是用柔性印刷线路板(FPC)接出来的,FPC的引出端可以做成一个插头,连接到线路板或其他部件的插座上,也可以直接焊接到线路板上。本文介绍的模块就是直接焊接到线路板上的。下图是网上的示意图,并非本模块FPC。

OLED显示模块驱动原理及应用


图6. 柔性印刷电路板FPC 样图

 

三、 驱动原理及技术要点

1、 驱动技术要点

OLED屏天生丽质,驱动技术功不可没。事实上,材料及工艺缺陷的克服,显示效果的灵活多变,外围电路及操作的简化,全都依赖驱动电路设计。以本模块的驱动芯片SSD1306为例,其技术要点罗列如下,相关内容在文中各处详细介绍。

1)  行列式点阵扫描驱动:矩阵显示屏动辄上万像素的分辨率,除扫描驱动,别无选择。

2) 像素恒流驱动:OLED发光亮度与驱动电流有较好的线性关系。而电压与亮度呈幂级数关系,控制电路不易实现。

3) 预充电技术:因寄生电容影响,OLED屏各像素点亮不同步,预充电技术解决此问题。

4) 预放电技术:各像素寄生电容电压不一致,电压过高会造成恒流驱动时无法准确控制其亮度,造成显示屏亮度不均匀。

5)  反向抑制技术:行列电极公用,会导致交叉效应,功能薄膜相连造成临近像素串扰,交叉和串扰效应会导致暗点发弱光,影响对比度。解决办法是加上反向电压来抑制。

6) 电荷泵技术:OLED面板恒流驱动时需要7-15V电源,电荷泵是一个升压电路。

7) 帧同步写入技术:该技术防止外部MCU写入数据速度滞后于帧频而造成一屏显示内容被撕裂的情形。

8) 多种显示方式:部分显示、顺序或隔行显示、行列倒置、256级对比度控制、水平及垂直滚动显示、写入换行次序定义等,均有专门操作指令,支持丰富的显示效果需求。

当然,驱动芯片技术远不止上述所列,上述技术可帮助我们理解及应用模块。

 

2、 点阵屏扫描驱动的基本原理


OLED显示模块驱动原理及应用
 

图7、显示点阵示意图

 

点阵屏像素按128列X64行组织,每一行128个像素单元的阴极是连接在一起,作为公共极(COM),每一列64个像素单元的阳极也连接在一起,作为一段(SEG)。行列交叉点上的LED就是一个显示单元,即一个像素。要点亮一个像素,只要在该像素所在列电极上加上正电压、行电极接地。同样,要驱动一整行图像,就需要同时把128列信号加载到列电极上,把该行行电极接地。该行显示时,其他63行均不能显示,其行电极应为高电平或悬空。

可见,整屏的显示,只能分时扫描进行,一行一行的显示,每次显示一行。行驱依次产生低电平扫描各行,列驱动读取显示数据依次加载到列电极上。扫描一行的时间称为行周期,完成一次全屏扫描,就叫做一帧。一般帧频为大于60,因此人眼观察不到逐行显示。每行扫描显示用时叫占空比,占空比小,为达到相同的显示亮度,驱动电流就大。SSD1306段驱动最大电流为100uA,当整行128个像素全部点亮时,行电极就要流过12.8mA的电流。

 

3、 OLED工艺问题及解决技术

OLED工艺上存在两个问题,一个是寄生电容,第二个是“单元串扰”。

先分析寄生电容的影响。一个像素的等效电路为一个发光二极管和一个电容并联,这个电容不是真正的器件,而是寄生电容,其容量约在22PF左右。一般要点亮一个OLED二极管,需要在阳极和阴极间加上大概4V左右的电压,这个电压叫开启电压,与制造材料有关。但寄生电容的存在,电源先要对电容充电,两端电压达到或超过二极管的开启电压后,二极管才会点亮。

OLED显示模块驱动原理及应用

 

图8、显示单元等效电路

 

寄生电容的存在,一是造成显示反应速度变慢;二是造成屏幕亮度不均,其原因是各寄生电容内电压不一致。AMOLED屏驱动电路解决办法是“预充电”,即对面板上所有寄生电容进行预充电,充到略低于二极管开启电压,当驱动信号到达时,无需等待即可点亮。PMOLED驱动电路的解决办法分3步走,不管电容原有电压高低,先全部放电,再统一充电到相同电压,最后加显示驱动信号。

第二个问题是“单元串扰”,即一个像素加载驱动电压或电流点亮,感应电压造成隔壁像素甚至同行同列像素微弱发光,这是OLED平面工艺的胎病,只能在驱动技术上动脑筋。解决办法是“反向抑制”,即对当前不显示的所有行加上反偏电压,即行电极(COM)加正电压Vcomh,当列电极驱动信号为0时,列电压接地,反压就是Vcomh。当列电极驱动信号为1时,列电极处于恒流驱动,列电压约在4V-Vcc间,此时反向抑制电压较小或接近于0,但不管反压大小,都能确保感应电荷及时被反压旁路掉。Vcomh可通过指令调节为Vcc 的0.65、0.77、0.83倍。

 

4、 行周期中的段驱动信号分析

有了上面的分析,就不难理解驱动芯片SSD1306数据手册中的“段输出波形图”。该图描述的是扫描某一行时,加载到列电极上的“段信号”波形。

OLED显示模块驱动原理及应用
 

图9、列(段)驱动信号3阶段

 

信号分成3个阶段,分别是放电、充电、恒流驱动,如上图标注1、2、3所示,每个阶段驱动信号的类型是不同的,时间长短也不同。因而其电路也较复杂,见图10所示。

阶段1:放电阶段,行列电极均接地,电容两端同电位,电容放电。放电时间可以通过指令调节,这跟电路内阻、电容大小有关,SSD1306默认为2DCLK。

阶段2:充电阶段,行电极接地,列电极接到一个略小于二极管开启电压的固定电压端进行充电,充电时间也可以通过指令调节,SSD1306默认也是2DCLK。

阶段3:充电结束后进入恒流驱动阶段,这个阶段持续50DCLK。需点亮像素被恒流源持续驱动,截止像素的列电极接地。

驱动电流从0-100uA分256极可调,调节电流就是调节亮度,不支持单个像素的灰度显示。

 

OLED显示模块驱动原理及应用

 

图10、驱动示意图(图片来源:OLED显示驱动及原理)

 

非扫描行的行电极接Vcomh时,各像素反偏,感应电被及时释放,就不会出现串扰现象。

假设帧频为100HZ,扫描一帧的时间就是10ms,一帧包括64行,每行扫描用时即行周期就是156us,每个行周期又分成54个显示时钟(DCLK),每个显示时钟为2.9us,预放电、充电都是占2个DCLK,为5.8us。DCLK可通过调节“振荡频率”及“分频因子”来调整,从而也调整了帧频。

 

四、 GDDRAMOLED屏的对应关系

1.     GDDRAM的作用

GDDRAM用于存储显示数据,用户通过MCU把数据写入RAM,同时向SSD1306发送相应的显示命令,驱动芯片会按用户指令要求自动进行逐帧扫描显示。与OLED屏128X64像素点阵对应,1个像素对应1个存储bit,因此 SSD1306驱动芯片内建1024字节的SRAM。

 

2.    GDDRAM的逻辑结构

GDDRAM的逻辑存储结构是按页来组织的,相应地,OLED屏像素点阵空间也把每8行组织成1页,但128个列不作划分。整个显示区域(存储空间)被划分成8个“页”,每页8行、128列,每页对应128个字节,每个字节按竖向排列的,低位在上,高位在下,下图是第2页的存储映像示意图。

OLED显示模块驱动原理及应用
 

图11、页的存储结构示意图

 

“页”的划分是方便于显示字符图形,一页8个像素的高度可以显示一个ASC字符,两页合起来16个像素高度,正好可显示一个16X16像素点阵汉字。这样写数据就很方便,如要显示一个5X7尺寸的ASC字符,可连接写5个字节。要显示一个16X16的汉字,就需要在2页上分别写16个字节。如果字节的各位横向排列,每一个字节都要定位,无法连续写入。

 

3.         驱动电路细节

然而,GDDRAM与屏点阵的映像关系不是固定不变的,两者之间的桥梁就是驱动电路,依赖对操作指令的硬件译码,驱动电路提供了灵活的显示方式。理解驱动细节是理解多数指令的关键。SSD1306数据手册给出的驱动逻辑图较为简单,结合逻辑图及指令可分析驱动的一些实现细节。

 

 OLED显示模块驱动原理及应用
 

图12、驱动电路功能逻辑示意图

 

行(公共极)驱动:行驱动产生周期性脉冲,负责逐行扫描。扫描顺序既支持从COM0到COM63的正向扫描,也支持从COM63-COM0的反向扫描。从上图可见,行驱动是分成两部分的,可实现逐行/隔行、顺序/交叉等不同的扫描方式。

列(段)驱动:段驱动加载SRAM中当前行的128列显示数据,通过图10所示的切换开关,先后切换到放电、充电及恒流驱动的输出电路上,完成一行的扫描周期。同行驱动一样,0-127路段信号既可以顺向加载,也可以反向加载。

行、列驱动的正/反方向扫描或加载设计,可以很方便地让用户实现显示内容的变换:行列同时反向,显示内容倒置,即旋转180度;仅行或仅列反向,显示内容在行或列方向上镜像。旋转90度是做不到的,除非在软件中重组整个SRAM的映像。

驱动电路还能显示部分行,而屏蔽掉另一部分;当然也能有选择地加载SRAM中的数据。

 

五、 SSD1306的指令系统解析

1.         指令表

有了前述显示驱动电路的原理分析,就不难理解SSD1306的指令。指令一共有23条,按功能分为五类。这些指令长短不一,短的为单字节指令,最长的为6字节指令。下面举例说明指令的格式:

第1条指令是一条亮度控制指令,格式为81,A[7:0],有2个字节,第一个字节为81H,第二个字节表述为A[5:4],是一个用户自定义参数的字节,其中A仅表示本条指令的第1个参数字节,如果是第2个参数字节则用B表示,注意这个A、B不是16进指令数值;[5:4]表示该字节的第5、第4位,这两位是可以设置参数的,该字节的其他6位取值需要查指令表,可能被明确定义为0或1,也可能取值无关(用*表示)。

 

SSD1306指令表:

指令类别

指令名称

指令代码(H)

指令作用简介

基础指令

1.     亮度控制

81,A[7:0]

参数A[]可设置256级亮度

2.     全显开关

A4/A5

A4正常显示,A5点亮全部像素

3.     反白开关

A6/A7

A6正常显示,A7反白显示

4.     显示开关

AE/AF

AE关闭显示,AF打开显示

显示滚动

5.     水平滚动

26/27,00,B[],C[],D[],00,FF

26水平右滚,27水平左滚

6.     双向滚动

29/2A,00, B[],C[],D[],E[]

垂直+水平右/左滚动

7.     关闭滚动

2E

 

8.     启动滚动

2F

 

9.     垂直滚动区域

A3,A[],B[]

A[]区域锁定不动,B[]区域滚动

地址设置

10.  起始列地址低

00~0F

2个4位合成一个字节作为列指针,页模式下指定显示内容的列位置

11.  起始列地址高

10~1F

12.  地址模式

20,A[]

3种模式:页,水平,垂直

13.  列(起止)地址

21,A[],B[]

水平或垂直模式时,指定行列起止地址来描写一块连续写入存储区域

14.  页(起止)地址

22,A[],B[]

15.  页起始地址

B0~B7

页模式下,指定要写入的页

硬件配置

16.  显示起始行

40~7F

从RAM中哪一行起读取显示内容

17.  段重映像

A0/A1

A1:列显示次序反向

18.  行扫多路系数

A8,A[]

设置只扫描哪些行(16~64)

19.  行扫方向

C0/C8

C8:行扫描次序反向

20.  行扫偏移

D3,A[5:0]

公共极(垂直)方向移动A[]行

21.  行扫配置

DA,A[]

4种组合,再结合行扫方向有8种

22.  升压泵开关

8D,A[]

打开或关闭内置升压泵

时序设置

23.  时钟分频

D5,A[]

16级振荡频率及16级分频设置

24.  充放电周期

D9,A[]

16级充电、放电周期设置

25.  Vcomh反压

DB,A[]

3级反向截止电压设置

26.  空操作

E3

 

上表中,指令名称作了意译处理,并对指令功能作了简单的描述。具体用法、参数含义可查阅数据手册。

 

2.         初始设置及基本操作类指令

上表中,基础类指令及时序设置类作用及原理多在前文中述及。第2条“全显开关”可用以测试全屏像素。第22条打开SSD1306的内置升压泵后,可将5V电压升到7.5V供OLED显示屏使用。第23-25条跟屏的生产批次有关,出厂后厂商会提供建议参数。

OLED显示模块驱动原理及应用
 

3.         地址设置类指令

要在屏上显示字符,首先要指定位置,这个位置就是“地址指针”,分成行指针和列指针。列指针可以128列中随意选定,但行指针不能指定0-63的任意一行,只能按“页”指定。地址模式是指连续写入数据的方式,分为“页、水平、垂直”3种不同的地址模式。

“页地址模式”可以本页内连续写入字节,需发送的指令顺序为:确定模式、确定页指针、确定列起始地址指针(依次为上表第12、15、10、11行指令),然后就逐个字节连续写入。“页地址模式”下既可以写整行,也可以在该页的任意一列起写1到多个字符,是最灵活的写入方式。

OLED显示模块驱动原理及应用

 

图13、页地址模式的指针移动示意图

 

“水平地址模式”与“垂直地址模式”,可以在整个屏中划出一块行列区域,然后连续写入数据。指定该区域需要4个指针:页起始、页结束、列起始、列结束,分别通过第14、13条指令来实现。指定后整块区域可连续写入,水平模式是“写完一页再写下一页”,垂直模式则是“写完一列再写下一列”,但不管是水平还是垂直模式,还是按页的结构来组织字节的。

OLED显示模块驱动原理及应用

 

图14、水平地址模式的指针移动示意图

 

OLED显示模块驱动原理及应用

 

图15、垂直地址模式的指针移动示意图

 

4.         硬件配置类指令

这类指令的功能表述最不清楚,实际上跟滚动操作一样,都是对灵活显示的支持。

1)  第18条:行扫描多路系数

这个指令让驱动电路只扫描一部分行,系数N可以设置为15-63,对应可扫描16-64行。下图分别是扫描16行、32行、49行的效果。扫描行越少,帧频就越高,亮度也就高。

OLED显示模块驱动原理及应用 

2)  第16条:显示起始行、第20条:行扫偏移

这两条指令的显示效果类似,只是驱动内部实现不同。行扫描偏移是通过重构COM电极输出来实现,而起始行设置是RAM读取地址的偏移来实现。

OLED显示模块驱动原理及应用

3)  第17条:段重映像,第19条:行扫方向

OLED显示模块驱动原理及应用

 4)   第21条:行扫配置

本条指令最复杂,参数A[5:4]包括2个开关,A[4]为是否奇偶配置COM,A[5]为是否左右交换配置COM。这个需要结合图10来理解,SSD1306的64个COM电极,并非按0-63的自然顺序连接到显示屏,而是分为左右两组,左边一组为奇数电极,右边为偶数电极。所谓左右,是指这个逻辑图而言,这些COM极反映到屏上就是行,左右也就变成上下了。

当A[4]=0时按顺序配置COM极,显示数据发送到奇数行显示,结果造成“隔行显示”效果,如下图1,2行汉字就可满屏。继续读取数据,就发送到偶数行上屏,奇偶显示重叠就无法看清,如图2。当A[4]=1时按替换方式配置COM电极,数据一奇一偶交替上屏,显示正常。

A[5]是COM左右交换配置开关。当A[5]=0为禁止COM左右交换,相当于正常显示。A[5]=1为允许COM左右交换,结果得到下图3的显示效果,这个图让人费解。看数据手册还以为2组COM可以整体交换,这样显示效果就是上2行汉字与下2行汉字整体交换位置,但事实上是相邻奇偶行交换,即1234……交换为2143……,暂未发现这种交换的实用价值。

OLED显示模块驱动原理及应用

行扫配置可以和行扫方向配合使用,这样就有8种组合,手册上有一堆示意图,让人头晕目眩。

 

5.         滚动类指令

所谓滚动,就是“循环移动”,包括水平方向滚动和水平垂直同时滚动,但没有单独的垂直滚动。滚动时可以向左也可以向右。滚动时可以单行内容滚动,也可以指定部分区域的内容滚动。从指令中“关闭滚动要恢复原数据需要重写”来看,滚动实现的内部操作可能是直接修改DDRAM相关单元的数据。

OLED显示模块驱动原理及应用

图片中的字体在滚动时出现重影,并非OLED显示迟滞,而是拍摄设备的曝光时间不够所致。另外,发送行扫描相关指令后,显示效果直接发生变化,但发送列重映像指令,显示并不变化,需要重写数据。

 

本文主要介绍了OLED屏的显示及驱动原理,在理解原理的基础上,就可以比较充分地理解驱动相关指令。汉字库原理、应用及相关例程待后续介绍。

 

 

转自:http://blog.sina.com.cn/s/blog_57ad1bd20102wtq8.html

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

OLED显示模块驱动原理及应用 的相关文章

  • QT自定义Widget控件及其使用

    今天来给大家分享一下QT自定义widget控件及其使用 当ui设计器提供的界面不满足实际需求时 可以从QWidget继承自定义的界面组件 有两种方法一种是提升法 另一种是ui设计器自定义界面组件widget组件 我们本次先说提升法 通过这个
  • 预告:Intel、Hulu、阿里、京东、携程等大数据实战直播

    前言 由CSDN主办的SDCC 2017之大数据技术实战线上峰会将在CSDN学院举行 作为SD系列技术峰会的一部分 本次线上峰会秉承干货实料 案例 的内容原则 将邀请圈内顶尖的布道师 技术专家和技术引领者 共话大数据平台构建 优化提升大数据
  • 学生选课系统---数据库课程设计SQL Server

    可以直接从我的GitHub中获取文档 学生选课系统GitHub 一 题目 学生选课系统 二 需求分析 1 根据学生专业学年学期等信息 录入课程完成课程计划 2 根据课程计划 录入任课教师信息 3 学生可以根据学年学期等信息 选择课程完成选课
  • 2022年第三届“大湾区杯”粤港澳金融数学数学建模竞赛

    2022年第三届 大湾区杯 粤港澳金融数学数学建模竞赛 文章目录 2022年第三届 大湾区杯 粤港澳金融数学数学建模竞赛 前言 一 分析B题 券商研报对公司股票走势的影响和投资策略 1 解读题目 2 第一问解析 3 第二问解析 4 第三问解
  • python读excel文件解析

    目录 一 题目描述 二 示例 三 分析 1 获取工作簿对象 2 获取表单的名字 3 通过表单名获取指定的表单对象 4 获取单元格中的值 一 题目描述 例如在当前文件夹下有一个名为 阿里巴巴2020年股票数据 xls 的Excel文件 读取并
  • Android Studio 自动更新

    一丶最近项目开发在用Android Studio 不过无奈自动更新检查时总是提示 Connection failed Please check your network connection and try again 怀疑可能是因为 不可
  • 关于vue3的使用插件FileSaver并且excel导出的实现方法

    参考文章 1vue elementui表格前端导出excel以及自定义导出样式 前端自定义报表模板 elementui 小郑有点困了的博客 CSDN博客 2Vue3 XLSX FileSaver导出导入功能 菜鸟学习JAVA开发的博客 CS
  • ESP8266 下载报错please check partition type 6 addr:3fd000 len:3000

    问题现象 串口打印 ESP8266 12F 的错误如下 ets Jan 8 2013 rst cause 2 boot mode 3 7 load 0x40100000 len 23948 room 16 tail 12 chksum 0x
  • 《信号与系统》解读 前言:为什么要解读《信号与系统》?

    什么需要解读 信号与系统 为什么需要开辟这个专题呢 1 基础理论的基础 2 工程技术的基础 3 建立系统思维 1 基础理论的基础 信号与系统 是 数字信号处理DSP 通信原理 数字通信原理 等其他基础课程的基础 传统的信号与系统偏硬件 现代
  • 写五个以科技为主题的html页面,要求用css实现,请写出实现代码

    在此基础上 我们可以创建五个以科技为主题的 HTML 页面 并使用 CSS 来实现设计 科技新闻页面 HTML 代码
  • Fibonacci数列(斐波那契数列)

    斐波那契数列 Fibonacci sequence 又称黄金分割数列 因数学家列昂纳多 斐波那契 Leonardoda Fibonacci 以兔子繁殖为例子而引入 故又称为 兔子数列 指的是这样一个数列 1 1 2 3 5 8 13 21
  • TCP的超时时间间隔的简单理解

    网上查了许多资料 都比较抽象 自我理解记录篇 本文适用于查了许多资料 但觉得还是比较抽象 有基础相关知识的人阅读 样本RTT SampleRTT EstimatedRTT 1 EstimatedRTT aSampleRTT 参考值 0 12
  • JS--变量

    变量在使用时分为两步 声明变量 赋值 1 声明变量 var age 声明一个名称为age的变量 var是一个JS关键词 用来声明变量 使用该关键词声明变量后 计算机会 自动为变量分配内存空间 不需要程序员管 age是程序员定义的变量名 我们
  • 《C++ primer plus》精炼(OOP部分)——对象和类(4)

    学习是人类进步的阶梯 也是个人成功的基石 罗伯特 肯尼迪 文章目录 友元函数 利用友元函数重载 lt lt 运算符 重载部分示例 矢量类 友元函数 先看看在上一章中我们作为例子的代码 class Student string name in
  • QComboBox 设置代理组件

    背景 QComboBox 是Qt中比较常用的一个输入控件 用于实现一个文本下拉列表 在简单的应用场景中 QComboBox 完全可以满足要求 但是项目实践过程中会遇到以下问题 需要实现比较复杂的下拉列表 比如同时显示图标 文字 按钮等 QC
  • CUDA学习(九)想好好解释一下利用shared memory去做matrixMul

    代码来自CUDA Samples v9 1 0 Simple matrixMul 主要注释了matrixMulCUDA C A B 它的理念是把矩阵分成小块 每个线程利用两层循环 大循环在迭代subMatrix 小循环则是迭代每个小subM
  • 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏

    PS 这是转载CSDN作者yangyu20121224的文章 真的非常不错 它主要讲述如何通过Fragment碎片实现点击TabHost切换页面 可惜作者很长时间没有更新了 他写的那系列文章都很实用 以后在做Android布局时会用到该篇文
  • Reading and Writing Images_OpenCV 3.0.0-dev documentation

    OpenCV 3 0 0 dev documentation OpenCV API Reference imgcodecs Image file reading and writing https docs opencv org 3 0 b
  • Python While 循环语句

    Python 编程中 while 语句用于循环执行程序 即在某条件下 循环执行某段程序 以处理需要重复处理的相同任务 其基本形式为 while 判断条件 condition 执行语句 statements 执行语句可以是单个语句或语句块 判

随机推荐

  • iOS开发抓包工具之Charles使用

    在iOS开发过程中 抓包是常见的必备技能之一 这里我们主要介绍一下Mac下的抓包利器Charles 文中版本 4 0 1 它可以非常方便的抓取Http Https请求 从而提高我们的开发效率 本文中不提供破解版安装使用说明 网上一大堆 建议
  • 单链表头插和尾插详解

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 链表定义 二 代码解析 1 程序代码 2 程序图解 前言 链表是一种常见的数据元素 它和我们之前学的数组不同 储存元素个数不受限制 操作难度也更大 为加强
  • Linux man手册一篇通

    linux man man是Linux的一个非常强的的命令 它的全称为manual 手册 有了它不用联网 轻松获取相关信息 man手册章节组成 man手册通常由多个类型章节组成 章节类型定义如下 章节 内容 中文 1 Executable
  • 攻防世界---getit

    getit 题目描述 菜鸡发现这个程序偷偷摸摸在自己的机器上搞事情 它决定一探究竟 题目附件 https adworld xctf org cn media task attachments e3dd9674429f4ce1a25c08ea
  • Java语音技术之FreeTTS

    转自 微点阅读 https www weidianyuedu com content 0017809736406 html Java语音技术之FreeTTS Java提供了语音API技术用于支持应用程序或Web页面中的人机语音交互 其核心技
  • Flash Download failed - “Cortex-M3“解决方法

    前几天在玩STM32F1的时候 烧录代码的时候出现这样一个错误 Error Flash Download failed Cortex M3 首先肯定要看配置问题 采用不同的仿真器 需要配置的选项就不同 这个完全可以自己看产品说明 当确定配置
  • vscode资源管理器隐藏配置文件的显示

    资源管理器显示太多 开头的文件 大多是配置文件 显示过多造成查看混乱 如何隐藏这些文件呢 左下角点击设置按钮中的设置 点击如图所示的按钮 在弹出的settings json 中添加如下内容并保存 files exclude true 注意
  • Nginx报错[emerg]: unknown directive “”

    前言 今天用记事本修改Nginx中的conf配置文件 由于自己没有备份 导致出问题 解决了两个小时都没有解决掉 不过遇到问题是好事 可以解决 如果有备份遇到问题也许不会一直去解决吧 但是 如果工作中的项目 由于自己的不备份 随意改动 影响项
  • 【C++入门】C/C++的(静态)断言用法总结

    1 C语言的断言 1 1 函数原型 include
  • linux0.11中的fork实现和一些注意事项

    最近几天刚开始在读代码 读的挺爽的 不过碰到了很多问题 慢慢来吧 有一个fork的系统调用一直没弄明白 查了一下再CSDN上有一篇好文 记录一 下 顺便自己添加一些自己的想法 下面是思路和提问 内核是linux0 11版本 里面的fork
  • Java刷新bean重新加载bean 上下文 刷新bean

    Autowired private ApplicationContext applicationContext 可以为接口或者业务方法被调用 public void reloadInstance 获取上下文 DefaultListableB
  • Transformer 训练优化

    前言 自 BERT 出现以来 NLP 领域已经进入了大模型的时代 大模型虽然效果好 但是毕竟不是人人都有着丰富的 GPU 资源 在训练时往往就捉襟见肘 出现显存 out of memory 的问题 或者训练时间非常非常的久 因此 这篇文章主
  • C语言深入学习--checklist6:函数、变量

    函数 1 如何查看函数在内存中的地址 打印该函数名的值就可以了 函数名是一个const的函数指针 2 如何给一个函数指针赋值 下面这个例子 函数指针的赋值和调用都有了 include
  • VNC远程连接(Win连Linux)

    VNC是主流Linux发行版内置的图形化远程工具之一 1 在Linux上启动VNC Server 执行vncserver命令 2 直接运行 vncviewer exe 系统会出现 Connection details 对话框 在 Conne
  • Mol Cell Proteomics.

    大家好 本周分享的是发表在MCP上的一篇关于鸟枪蛋白质组学中的错误率的文章 题目是Integrated identification and quantification error probabilities for shotgun pr
  • Android 仪表盘 图片 中心 旋转

    因为项目需求 需要做一个基于仪表盘方式的数据显示方式 在网上一会 google 一会 baidu 最后得来的也就是对 Matrix 的几个解释 之前还被 hdpi mdpi ldip 搞得晕头转向的 郁闷了许久 但是今天终于搞定了 心情愉悦
  • PID整定二:基于Ziegler-Nichols的频域响应

    PID整定二 基于Ziegler Nichols的频域响应 1参考 2连续Ziegler Nichols方法的PID整定 2 1整定方法 2 2仿真示例 1参考 1 1根轨迹图的绘制及分析 1 2计算机控制技术01 3 4离散系统的根轨迹分
  • 蓝桥杯python组算法模板与习题

    目录 一 一些简单的处理技巧和语法 1 小技巧 1 1 python中的快读 sys库 1 2 python程序测试时间 仅供参考实际比赛可能也没啥用 1 3 python中日期处理等问题小技巧 2 基础语法 2 1 首先就是标准格式化输入
  • Centos系统安装Tomcat(Tomcat7,Java8-jdk1.8)

    以前经常使用java8 也就是java jdk1 8 和tomcat7开发web系统 怀旧记录一下在centos7系统里安装部署tomcat7 同时部署多个tomcat7的方法 解决tomcat7在centos7系统启动很慢的问题 apac
  • OLED显示模块驱动原理及应用

    OLED显示模块驱动原理及应用 本文以中景园OLED显示模块为例 介绍模块的应用和OLED显示及驱动的基本原理 文中介绍了显示模块 SSD1306驱动芯片以及GT20L16S1Y字库芯片相关技术内容及原理 并加上了作者的理解和应用记录 一