主机环境: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格式颜色数据,如图
当前图像为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就是我们使用软件生成的图像颜色数据
此时我们可以再查看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的不同扫描方式
通过测试可以发现SM位为1时图像显示不正常,即SM位我们一般是设置为0.
AM位控制GRAM地址更新方向
0:地址更新水平方向先
1:地址更新垂直方向先
AD[1:0]是控制GRAM地址是自增1还是自减1,示意图如下
一般默认情况下我们使用的是右上角的模式,即GRAM的水平地址和垂直地址都是增加的,且GRAM地址是更新水平地址先,这跟我们主观视觉相一致。GRAM的起始地址在左上角B(Begin)GRAM的结束地址在右下角E(End)。如果我们想实现横屏显示(默认情况下是竖屏显示)时就需要设置AM=1即地址更新垂直方向先。还是以上图为例,但是我们给图增加一个标志,如图
在图中增加了一串字符(字符是在图片上的,跟图片是一个整体)来标记当前是竖屏显示,实现横屏显示时,图像就要调整了应当是320*240而不是240*320了,同样修改图像增加字符串,如图
此时图像为320*240,修改代码,ILI9325_Write_Reg(0x03,0x1028);AM=1,ID[1:0]=0x02
效果图如下:
可以看到图像是横屏正确显示了。
ORG:是否允许原始地址移动,0时原始地址不移动,1时原始地址根据ID[1:0]设置移动。
但是在测试中发现ORG的设置对图像没影响。。。
上一篇:STM32 TFT学习笔记——触摸屏
下一篇:STM32 TFT学习笔记——刷屏
推荐阅读最新更新时间:2024-03-16 16:25