ili9325--LCD寄存器配置研究
2011-06-22 22:18:12
自己根据ili9325的规格书编写驱动。发现LCD屏没显示。于是怀疑是某些寄存器设置错误。要调试的话最好还是先熟悉寄存器的作用,调试的时候只要看到现象就能分析了。否则真是摸不到头脑。于是乎,对ili9325做了如下寄存器研究学习。视频太大了,就不上传了。
1,Driver Output Control (R01h)
1)相关理论:
LCD显示器采用按行按列的有源矩阵驱动方式,行线都是接在像素NMOS管的栅极(gate),列线接在NMOS管的源极(source)。在LCD模块中,行线和列线是分开来驱动的,驱动行线的电路叫:gate-driver ,驱动列线的电路叫:source driver。
2)规格书寄存器解释:
gate-driver相当与像素点开关,source driver用来选择颜色源,是红色绿色还是黄色。
如果SM,GS为0,那么像素点的开关是从G1到G320.那么开关打开的方向是从G1开始的,那么颜色信号源当然也从S1开始。所以SS=0.
我买2.4寸屏的时候提供的inti代码中SS为1,SM,GS分别为0和1。根据我上面的理论基础。看下它的配置是否正确。SM,GS为01说明像素点开关是从G320开始的,那么对应的颜色信号源应该从S720开始,即SS要为1,理论验证正确。
那么很多方法都可以设置,他们的效果又如何呢?这就简单了,规格书写的很清楚。左上角第1点是G320,后下角最后一点是1,根据SS,SM,GS都为0来配置的话。图像应该从右下角开始扫描。
而我厂家提供的代码应该是从左上角开始扫描的。
3)实际配置验证
验证正确。
扩展实验。
因为还有2种模式,于是我把SM设置为1,GM设置为0,过程不正常。于是把SS,SM设置为0,GS设置为1,效果不正常,但是最终停止的结果还是对的。
SM扫描枪设置为垂直方向,但是AM数据写入地址还是水平方向,那么显示过程就不太正常。我把AM设置为1,则显示是垂直扫描。
小结:说明与此寄存器关联的寄存器还有Entry Mode (R03h)寄存器。AM的方向和SM的方向一致就没什么大问题了。
2, Gate Scan Control (R60h)
1)规格书寄存器解释:SCN[5:0]
上面的R01h寄存器与此寄存器有关,从R01h寄存器看,像素显示为位置不是从G1开始就是从G320开始。我能不能配置让它从其它像素点开始显示呢。SCN[5:0]配置一下就可以实现。SM=0,GS=1的情况下SCN[5:0]配置为0Ah,则像素点从G240开始扫描。
2)实际配置验证
验证正确,确实从G240行开始显示的。
但是我本来还认为G320到G240这些行就不显示了。结果还有显示。参看我拍的视频6.
小结:按照效果来理解的话,就是GRAM中0000地址的数据分配到了LCD的物理地址的G240开始。如果不设置SCN,则GRAM中0000地址的数据是分配到LCD的G320位置即首行。
1)规格书寄存器解释:NL[5:0]
既然可以设置从哪个像素开始启动。那么我的图片很小,不需要开320个行,我只需要240 行有驱动电压,让我显示一个小图片就可以了。于是设置R61h的NL[5:0]= 1D即可。NL用来设置扫描范围为240行。
2)实际配置验证
验证正确,看视频7.
小结:以后看到按顺序的错位显示,可能就是Gate开关地址不正确。
3, Gate Scan Control (R61h)
1)相关理论NDL
灰度与像素的关系
一般,像素值量化后用一个字节(8b)来表示。如把有黑-灰-白连续变化的灰度值量化为256个灰度级,灰度值的范围为0~255,表示亮度从深到浅,对应图像中的颜色为从黑到白。黑白照片包含了黑白之间的所有的灰度色调,每个像素值都是介于黑色和白色之间的256种灰度中的一种。那么从表象来看灰度到最大值时,我也可以理解为反色。我现在在word中打出的字是黑色的。当我选中它,则变成白色。
2)规格书寄存器解释:NDL
V63,V62,V61……V2,V1,V0代表灰度等级。它其实是提供给gamma的校准电压。代表着64种电压强度。那么是不是代表64种灰度呢?这点理解的比较模糊。NDL位能确定V63是电压最强端还是V0端为电压最强端。但是我认为只有这一个寄存器没法进行什么验证,应该还有一个寄存器配置显示的强度选择。如使用V62强度,或V3强度,那么改变NDL则LCD显示的颜色应该呈现反色。
3)实际配置看效果
验证失败,仔细看了规格书,原来配置的是non-display area.所以我无法看效果。
1)规格书寄存器解释:REV
此位没搞明白。
2)实际配置看效果
小结:原来我本来以为NDL是反色效果,结果REV=0才是反色效果。参考我的视频8。
1)规格书寄存器解释:VLE
此寄存器是设置垂直滚屏用的开关。VLE垂直滚屏的话,要配合R62的VL[8:0]使用。
4, Gate Scan Control (R6Ah)
1)规格书寄存器解释:
VL[8:0]主要是设置滚屏行数。
当VLE bit设置为1,再设置VL[8:0]=160,则垂直滚动的行数为160.从LCD的物理第1行开始垂直滚动160行。现在问题是,这滚动的速度是否很快,我肉眼能看见吗?滚动完成后,那么低161行到320行会显示什么呢?
2)实际配置验证
验证失败,我已经把扫描方向改成从右到左,但没看出它垂直滚屏。
小结:VLE及VL[8:0]一定还和其他寄存器有关。目前不知道。
5,Horizontal and Vertical RAM Address Position (R50h, R51h, R52h, R53h)
1)规格书寄存器解释:
R50,R51,R52,R53是设置地址范围用的寄存器。比较好理解。因为你要送一个RGB数据到LCD某点显示的话,也要先写地址。那么着四个寄存器就是让你确定一个LCD显示区域的范围。R50为行开始地址,R51为行结束地址,R52为列开始地址,R53为列结束地址。
突然想到一个问题,我如果显示地址一个显示点,给它的地址超出了如上定义的范围,它应该是不会显示的哦
2)实际配置验证
验证成功。参考视频9
扩展实验。看了视频9,发现240行下显示为花屏,因为下我有颜色输出的最大行就是240,至于为什么240行之后会花屏,因为,我gate开着。所以source还是会送数据来显示。那么我应该把240行以后的gate关掉,那么应该只留白色背光了。
验证成功。参考视频10。
小结:在gate打开的情况下。设置LCD显示的范围应该要小于gate的范围。如果LCD显示范围设置的比gate打开的范围大,那么也是不会有显示的。因为gate没开,RGB数据不可能从source信号传出。
6,LCD Driving Wave Control (R02h)
1)相关理论
LCD 的 VCOM 就是所有笔划或象素背后的公共电极. 因为 LCD 的每一个显示点必须加正负交替的电压才能显示, 所以要在 VCOM 上加一个一定频率的方波, 显示为 "亮" 的笔划或象素上加与其反相的波形, 形成交替电压, 不显示的笔划或象素加与之同相的波形, 相当于加 0 电压.
如果一直显示禁止的图像,则液晶电极上的电压就会一直不变。待撤销电压后,液晶很难恢复原状(为什么呢?暂时不知道。)容易造成液晶损坏。为解决这一方法,就是改变液晶电压的极性,VCOMH和VCOML一起改变。但是电压还是有的,所以图像任然显示。但是液晶就不那么容易损坏了。改变极性有帧方式,行方式,点方式。帧方式的屏幕闪烁比较明显,一般采用行方式。
2)规格书寄存器解释:
B/C是设置帧或行转换。
EOR与B/C都设置为1,则为行转换。
3)实际配置验证
设置为帧转换看效果。看不出来哦。
7,Entry Mode (R03h)
1)规格书寄存器解释:AM,I/D[1:0]
AM控制GRAM地址更新的方向是行还是列。
I/D[1:0]控制地址计数器是增加还是减小1。
这2个显示地址方向配置加上R50h ~R53h的显示地址范围配置。则可以确定扫描及显示的方向及LCD显示内容的物理位置。
更改GRAM地址方向应该比较简单,但是是否一定要配置电压扫描的方向呢?我认为是要不需要配合的,但是配置的话,显示屏的显示效果应该会更好。比如GRAM为逐列扫描,而Gate电压的扫描方式为逐行,效果可能会不好。当然也可能根本没影响。因为他们是有先后顺序的。这点不太清楚。
2)实际配置验证和看效果
Gate扫描的方向和AM地址更新方向没什么太大关系,只是我还没看出来。只是在配置I/D的时候发现与规格书不符。I/D为11时与I/D为10时显示的扫描方向与实际相反。
小结,AM是SM配置有点关系的,配置I/D为11时与I/D为10的时候发现与规格书不符
1)规格书寄存器解释:ORG
Org为1,则能根据I/D设置的方向自动更新地址。 但是首地址必须为”0x0000”.
ORG为0,则说明写入特殊地址。I/D的配置不起作用。另外,如果不用GRAM,则ORG要配置为0
ORG设置为0,应该只显示一个像素点。但是结果验证失败,也搞不清楚ORG位没起作用啊。
1)规格书寄存器解释:BGR
转换RGB写入GRAM地址的顺序。如果改下RGB的顺序,则显示的图像应该花屏了。或者说颜色改了。R值变成了B值,B的值变成了R的值。如果我用调用红色刷屏,改变RGB,应该显示的是蓝色刷屏。之前刷屏的顺序是红绿蓝,那么RGB顺序改后,刷屏顺序应该是蓝绿红。
2)实际配置验证
验证正确。参看视频11.
1)规格书寄存器解释:TRI
MCU接口与LCD 内部RAM接口模式转换,配合DFM使用。规格书写的很清楚了。再此我不写了。要验证很简单,TRI改成1,那么MCU的RGB数据传输到LCD的内容RAM后就变样,显示出来一定是花屏显示不正常。
2)实际配置验证
验证正确,但是没想到它还蛮有规律的。参看视频12.
8,Resizing Control Register (R04h)
1)规格书寄存器解释:
这个寄存器比较简单,主要设置RSZ[1:0]缩小多少倍,RCH[1:0]水平剩余的像素,RCV[1:0]垂直剩余的像素。公式可以参考ili9325规格书的P105页。至于剩余的像素到底有什么用,现在还不清楚。显示我可以尝试调整图像大小。
2)实际配置验证
验证正确。看视频13.不过还有一个要注意的,就是同时也要设置扫描地址的范围即要设置R52和R53.否则,效果即为视频14.
9,Display Control 2 (R08h)
1)规格书寄存器解释:
设置前肩和后肩的clk值。参见ili9325规格书P35页。本来以为只适用于RGB接口的VSYNC信号。现在再看看规格书中I80 System
Interface Operation Mode BP ≥ 2 lines FP ≥ 2 lines FP +BP ≤ 16 lines。说明我用的i80接口也要配置R08h寄存器的。我尝试一下在LCD初始化中删除对此寄存器的设置看看效果。
2)实际配置验证
验证正确。注销此寄存器配置,也没问题。
10,Display Control 3 (R09h)
1)规格书寄存器解释:
刚才说过Vcom做周期性的变化对屏有好处(为什么呢?)。对不显示数据的地方(是指GRAM设定的范围外的地方吗?)则Vcom也做周期性变化的话,那么周期值是多少呢,通过ISC[3:0]设置。PTG[1:0]在不显示图像的区域设置Vcom扫描模式。PTS[2:0]设置源极不显示图像区的电压等级。当设置为1,可以不适用灰阶电压,可以降低功耗。既然是在不显示的区域设置这些模式,我无法通过肉眼观看来验证,要我测量功耗,我现在也不会。这个就不验证了。
11,Display Control 4 (R0Ah)
1)相关理论
好在很多LCM驱动芯片都有一个Fmark脚,用来与主控同步,当Fmark发出一个信号给主控时,主控才开始写一帧数据,这样就可以保证两边同步。
2)规格书寄存器解释:
FMI[2:0] 根据显示数据重写周期和数据传输速率来设置FMARK信号的输出间隔。 FMARKOE 当FMARKOE=1, 由FMI成像[2:0]位设置输出间隔下,ILI9325开始输出FMARK信号。不过FMARK没与MCU相互有引脚连接,这个寄存器没用吧!
2)实际配置验证
验证正确,注销这个寄存器,也没问题。
12,RGB Display Interface Control 1
(R0Ch)
1)规格书寄存器解释:
我用的是i8080接口,作用此寄存器我用不到的。此寄存器主要是设置与RGB接口相关的。
2)实际配置验证
验证正确,注销这个寄存器,也没问题。
13,Frame Marker Position (R0Dh)
1)规格书寄存器解释:
这个比较简单,设置输出信号同步的信号位置。就是在BP后隔多少帧,则MCU可以向LCD传输数据。但是我认为这是针对RGB接口协议的,1)规格书寄存器解释:
这个比较简单,设置输出信号同步的信号位置我用的i8080接口协议,应该不用设置这个寄存器。
2)实际配置验证
验证正确,注销这个寄存器,也没问题。
14,RGB Display Interface Control 2
(R0Fh)
1)规格书寄存器解释:
这个比较简单,RGB信号有效时的极性。我用的i8080接口协议,应该不用设置这个寄存器。
2)实际配置验证
验证正确,注销这个寄存器,也没问题。
15,GRAM Horizontal/Vertical Address
Set (R20h, R21h)
1)规格书寄存器解释:
这个比较简单,设置水平和垂直的GRAM地址初值。然后配置AM和I/D则在此地址基础上地址会自动更新。如果设置的值不是0,而是00和1EF,那么17’h00000 ~
17’h000EF段中的RGB数据就不会变化。因为不会写RGB到17’h00000 ~ 17’h000EF段中了。
2)实际配置验证
验证正确,参看视频15.
16,Gamma Control (R30h ~ R3Dh)
相关理论
Gamma值的修正,可以改变画面明暗,增加对比。动态Gamma控制则根据每个画面的不同动态修正Gamma值。通常在一个黑暗的画面中,很难分辨出细节,若把全部亮度提升,虽然看得到暗处,但是又会造成失真,例如蓝天的部分就会褪色。因此改变局部的Gamma(γ)曲线,即可修正局部的亮度,增加对比
1)规格书寄存器解释:
Gamma值设置。参见ili9325规格书P90,具体也不知道怎么设置。
但是我知道是用于图像效果微调整的。
实验证明,把它们注销也没问题。
17,Partial Image 1 Display Position
(R80h)
Partial Image 1
RAM Start/End Address (R81h, R82h)
Partial Image 2
Display Position (R83h)
Partial Image 2
RAM Start/End Address (R84h, R85h)
1)规格书寄存器解释:
以上这几个寄存器用来设置显示部分图像的LCD屏显示位置,和GRAM中显示内容的起始地址。具体含义可以参考ili9325提供的实例P102-P103页。
18,Panel Interface Control 1(R90h)
1)规格书寄存器解释:
设置行clk内部时钟,不设置应该不会有数据进GRAM,那么就没显示。
2)实际配置验证
注销这个寄存器,看效果。
验证结果为注销也可以。
19,Panel Interface Control 2 (R92h)
1)规格书寄存器解释:
设置行gate内部时钟在非显示区,不设置应该不会开gate。降低功耗。
20,Panel Interface Control 4 (R95h)
1)规格书寄存器解释:
设置RGB接口的clk。我是i8080接口不用的。
21, Power Control
1 (R10h)
1)相关理论
先说明一下LCM中的电源电路结构,包括内置电源AD/DC转换电路,Gamma校正电路(gammat调节+灰度电压产生电路),列驱动电路(Source Driver),行驱动电路(Gate Driver),
关于电压,参考ili9325规格书P101页的电压表。也可以参看P12页的电压pin脚说明
说明一下VGH和VGL提供Gate Driver。VGAM1OUT提供Source Driver电压,VCOMH和VCOML提供LCD屏的公共电压。VLCD即DDVDH提供Source driver和Vcom Driver的电压,VCL,提供VcomL Driver的电压。另外这些电压直接有约束关系。(DDVDH – VREG1OUT
) > 0.5V, (VCOML1 – VCL) > 0.5V, (VCOML2 – VCL) > 0.5V。
2)规格书寄存器解释:SLP,STB,DSTB,AP[2:0]
以上4种控制为都是为了节约功耗而设置的。SLP:睡眠模式,STB:待命模式,DSTB:深度待命模式。AP[2:0],调整LCD电源电路中的电流。暂时我不去修改它们的配置。
1)规格书寄存器解释:SAP,APE
以上2种配置主要起到开关作用。SAP:Source driver的开关。APE:PowerSupply的开关。
1)规格书寄存器解释:BT[3:0]
设置升压电路的因数。
21, Power Control
2 (R11h)
1)规格书寄存器解释:
VC[2:0]:设置基准参考电压VCi1与输入电压Vci的比例因子。
DC0[2:0]:设置升压电路1的频率。不太清楚是哪个电路。
DC1[2:0]:设置升压电路2的频率。不太清楚是哪个电路。
22,Power Control 3 (R12h)
1)规格书寄存器解释:
VRH[3:0]:设置Vci与VREG1OUT的比例因子。可以通过Vci确定VREG1OUT。
VCIRE:配置VRH[3:0]选择使用内部或是外部电压*比例因子=VREG1OUT电压
PON:行驱动电压开关。
23,Power Control 4 (R13h)
1)规格书寄存器解释:
VDV[4:0]:VREG1OUT与Vcom比例因数。主要是通过VREG1OUT设置Vcom的电压值。
24,Power Control 7 (R29h)
1)规格书寄存器解释:
设置内部 VcomH 电压。
看了它的出厂配置代码。Vci1=Vci=3.3v,DDVDH=6.6V,VCL=-3.3V.VGH=19.8V,VGL=-16.5V,VCOMH=4V,Vcom=1.04*1.875=5.07V,VREG1OUT= 4.875V; VcomL怎么没设置啊,我认为VcomL=-Vcom/2=-2.5V。根据规格书P101的电源范围。发现VGH设置偏高。DDVDH偏高。根据P106页最大值设定范围,也发现这2个值偏高。
我准备把Vci1基准电压降低到0.85 x Vci(3.3V)=2.8V,修改VC[2:0]=2.
DDVDH=5.6V,VCL=-2.8V.VGH=16.8V,VGL=-14V,VREG1OUT用的是内部基准2.5V,所以与VREG1OUT有关的电压都不变。Vcom=1.04*1.875=5.07V,VREG1OUT= 4.875V。不过VcomL的值我不确定。
2)实际配置验证
验证成功,我设置的Vci与Vci1的比例因数0.85也ok。
25,Frame Rate and Color Control
(R2Bh)
每秒刷屏的数量。
2)实际配置验证
本来想尝试加快刷屏。结果已经设置的是最快的了R2Bh=0xD,于是我设置为0. 40帧/s然后就发现图像抖的厉害。不过这个寄存器主要针对动态图像的。如做摄像头+LCD显示的话就比较注意刷屏率了。于是我把刷屏率这个寄存器配置注销掉,发现它的显示速度稍微慢点。估计它是有默认值得。
会不会很多寄存器都有默认值啊。我要尝试批量注销寄存器配置代码。我发现只要power on时序对基本就ok了。
26, Display
Control 1 (R07h)
略。
Ili9325大多数的寄存器我都解释了一下,并且有一些寄存器还做了实验。发现这些寄存器越看越简单。为什么这么说。我现在就想学打太极一样。已经把所有的招式都忘了。而学会的是融汇贯通。
小结一下,需要配置的必要内容。
1, 电压值要配置,并且power on。
2, 内部晶振值要配置。各各driver 要打开。如Gate不打开,则不会有显示。
3, GRAM地址要配置。
4, 显示范围要配置。
5, 显示方向要配置,包括Gate驱动扫描的方向和Source驱动的数据进入方向。
Ok。研究了它的配置数据,即熟悉的各各寄存器的作用。我将根据P101页的PowerSupply配置流程来写我的初始化程序。
附录:
视频对应的配置说明
1, 在出厂配置
2, 在出厂配置的基础上,设置SS=0,SM=0,GS=0,AM=0,I/D=3
3, 在出厂配置的基础上,设置SS=0,SM=1,GS=0,AM=0,I/D=3
4, 在出厂配置的基础上,设置SS=0,SM=1,GS=0,AM=1,I/D=3
5, 在出厂配置的基础上,设置SS=1,SM=0,GS=1,AM=0,I/D=1
6, 在出厂配置的基础上,设置SCN=0x0A
7, 在出厂配置的基础上,设置SCN=0x0A,NL=0x1D
8, 在出厂配置的基础上,设置REV=0
9, 在出厂配置的基础上,设置VEA=0xEF
10, 在出厂配置的基础上,设置VEA=0xEF,NL=0x1D
11, 在出厂配置的基础上,设置BGR=0
12, 在出厂配置的基础上,设置TRI=1
13, 在出厂配置的基础上,设置RSZ=1,R52h=240/2,R53h=320/2
14, 在出厂配置的基础上,设置RSZ=0
15, 在出厂配置的基础上,设置R20h=0xEF,R21h=0x5
16, 在出厂配置的基础上,设置R2Bh=0
ili9325--LCD寄存器配置研究的更多相关文章
- 摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置
上一篇博客主要介绍了OV7725的电气特性以及SCCB接口的时序和输出一帧图像的时序图以及数据的拼接.输出一帧图像与输出时钟PCLK有关. 上图是OV7725实现的整体框架,有点丑.FPGA描述SCC ...
- 关于AXI_Quad_SPI的寄存器配置
关于AXI_Quad_SPI的寄存器配置 1.核初始化配置 首先是: 40:0000_000A 1C:8000_0000 28:0000_0004 2.命令与dummy_data 60:000001E ...
- STM8串口初始化寄存器配置
//库函数配置 UART1_DeInit(); UART1_Init((u32)1000000, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, \ UART1_PARI ...
- stm8s + si4463 寄存器配置
/***********************************************函 数: main功 能: 程序入口输 入: /输 出: /描 述: /**************** ...
- 裸机LCD驱动配置
横屏4.3寸LCD为480*272(行:480个像素点 列:272个行) 1.1 LCD原理图 : Pin1:Von 电源正(这里由硬件自动控制) Pin2:VM/VDEN 数据使能 ...
- Nagios学习实践系列——配置研究[监控当前服务器]
其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...
- Nginx安全配置研究
x00 测试环境 ? 1 2 3 操作系统:CentOS6.5 Web服务器:Nginx1.4.6 Php版本:Php5.4.26 0x01 Nginx介绍 nginx本身不能处理PHP,它只是个we ...
- 与或左移右移操作在ARM寄存器配置中的作用
逻辑运算: 与运算&:与0清零 清零用与运算 或运算 |:或1置一 置一用或运算 异或 ^:不同为1 /*****单个寄存器清零置一*************************** ...
- STM32的操作过程,寄存器配置与调试过程(转载)
很多学习stm32的,为什么学习stm32他也不知道,我们所知道的就是各个论坛讨论stm32的很多,而我们很多人之所以学习stm32是很多的淘宝卖家做了大量的图片文字宣传,于是我们经不住诱惑就买了板子 ...
随机推荐
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——操作系统配置,安装必备软件
注意未经说明,所有本文中所有操作都默认需要作为root用户进行操作. 一.安装zmodem,用于远程上传下载文件,安装gedit,方便重定向到远程windows上编辑文件(通过xlanuch) [ro ...
- 134、直接拿来用,Android界最火的开源项目
Android酷炫开源动框架2015-2016双年榜(转载) http://blog.csdn.net/u011200604/article/details/54428128 GitHub上受欢迎的A ...
- C# WinForm窗体隐藏右上角最小化、最大化、关闭按钮
C# WinForm窗体隐藏右上角最小化.最大化.关闭按钮 如何赢藏WinForm窗体的右上角按钮 设置设置ControlBox = false: 设置ControlBox = false:
- hibernate源码分析1
- 在node环境使用axios发送文件
yarn add form-data (async () => { const l = console.log; const axios = require("axios") ...
- Educational Codeforces Round 2
600A - Extract Numbers 20171106 字符串处理题,稍微注意点细节就能水过 #include<stdlib.h> #include<stdio.h&g ...
- js 读秒
<input type="button" value=" 获取验证码 " class="verification right" &qu ...
- Web前端攻击方式及防御措施
一.XSS [Cross Site Script]跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户 ...
- 【C++ 继承与派生/知识梳理】
为什么引入继承派生 代码重用扩充 软件的复用 层次分类 派生类的语法定义 class 派生类名(1):继承方式(2) 基类名(3){ 派生成员声明:} *(1)一个派生类——>多个基类,多继 ...
- 小程序里let和var以及const区别
在JavaScript中有三种声明变量的方式:var.let.const. var:声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用. [JavaScript] 纯文 ...