STM32 TFT学习笔记——刷图

主机环境:Windows 7 SP1

开发环境:MDK5.14

目标板:ST NUCLEO-F303RE

TFT型号:2.4英寸,带触摸,SD卡,240*320分辨率,26万色

驱动IC:ILI9325

ST库版本:STM32Cube_FW_F3_V1.1.0


做完刷屏之后就可以很容易实现刷图操作,唯一不同的是刷屏是我们自己写入颜色数据,而刷图你得获取图像的像素颜色数据先才能写入到ILI9325,看起来数据量很大,但是还好我们有工具可以很轻松的实现,该工具就是Image2Lcd,使用它可以生成16bit的RGB565格式颜色数据,如图

STM32 TFT学习笔记——刷图_第1张图片

当前图像为240*320,保存结果会产生一个数组,数组大小为153600(240*320*2),

只需要编写主函数即可

LCD_SetAddress(0x00,0x0000);
	ILI9325_Write_Address(0x22);
	for(i = 0; i < 76800; i++)
	{
		ILI9325_Write_Value(gImage_123[i*2+1]<<8|gImage_123[i*2]);
	}

gImage_123就是我们使用软件生成的图像颜色数据 STM32 TFT学习笔记——刷图_第2张图片


此时我们可以再查看ILI9325寄存器,SS位和GS位控制图像扫描方式,SS控制水平方向(Source driver)S1~S720,GS控制垂直方向(Gate driver)G0~G320

SS选择

0:正向扫描S1-S720

1:反向扫描S720-S1

SS选择不同会导致图像左右镜像(SS位修改后GRAM数据需要重写)

GS选择

0:正向扫描G0-G320

1:反向扫描G320-G1

GS选择不同会导致图像上下镜像

SM位是配合GS位来实现Gate driver的不同扫描方式

STM32 TFT学习笔记——刷图_第3张图片

STM32 TFT学习笔记——刷图_第4张图片

通过测试可以发现SM位为1时图像显示不正常,即SM位我们一般是设置为0.

AM位控制GRAM地址更新方向

0:地址更新水平方向先

1:地址更新垂直方向先

AD[1:0]是控制GRAM地址是自增1还是自减1,示意图如下

STM32 TFT学习笔记——刷图_第5张图片

一般默认情况下我们使用的是右上角的模式,即GRAM的水平地址和垂直地址都是增加的,且GRAM地址是更新水平地址先,这跟我们主观视觉相一致。GRAM的起始地址在左上角B(Begin)GRAM的结束地址在右下角E(End)。如果我们想实现横屏显示(默认情况下是竖屏显示)时就需要设置AM=1即地址更新垂直方向先。还是以上图为例,但是我们给图增加一个标志,如图



在图中增加了一串字符(字符是在图片上的,跟图片是一个整体)来标记当前是竖屏显示,实现横屏显示时,图像就要调整了应当是320*240而不是240*320了,同样修改图像增加字符串,如图

STM32 TFT学习笔记——刷图_第6张图片

此时图像为320*240,修改代码,ILI9325_Write_Reg(0x03,0x1028);AM=1,ID[1:0]=0x02

效果图如下:

STM32 TFT学习笔记——刷图_第7张图片


可以看到图像是横屏正确显示了。

ORG:是否允许原始地址移动,0时原始地址不移动,1时原始地址根据ID[1:0]设置移动。

但是在测试中发现ORG的设置对图像没影响。。。

你可能感兴趣的:(STM32 TFT学习笔记——刷图)