打印
[STM32]

振南ZN-X开发板【STM32M3版】模块实验 之 TFT功能测试(ILI9325)

[复制链接]
1213|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2014-10-10 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
振南网站还在继续美化改进,暂时提供一个平台来发布振南的实验和相关资料!
http://www.znmcu.cn/znx_m3_exp_tft_wr_test.html
TFT液晶基本功能测试(ILI9325 写屏与读屏)【STM32 M3版】
实验说明:
振南很多精彩实验都需要TFT液晶,比如数码相框、数码相机、视频播放器等等。但是在作这些实验之前,我们必须保证TFT液晶是可以正常工作的,驱动程序是正确的。所以振南设计了此实验,用来对TFT液晶基本的写屏与读屏功能进行测试。
所需硬件:
此实验中需要的硬件有:
ZN-X开发板基板(STM32 M3版)【也可使用自己的开发板,不过TFT液晶的接口信号比较多,自己接线可能会比较麻烦】
ARM-OB或JLINK仿真器(用于仿真与程序下载)
USB转串口模块(用于串口通信与程序下载)
TFT液晶(320X240像素,控制器为ILI9325)
电路原理图及详解:
上图是振南ZN-X开发板上TFT液晶实验的主要原理图(与此实验无关的部分已经被裁掉)。(1)是ZN-X基板上TFT液晶模块的接口。如下图:
图中上方的2X20排母接口就是此实验中TFT模块要插接的位置。有些人询问下方的2X17的接口是作什么用的。因为ZN-X可以支持多种TFT液晶模块,它们的接口都不尽相同,所以在ZN-X基板上有两个TFT液晶模块的接口。同时这些接口为其它模块的扩展提供了余地和机会,从而使得ZN-X开发板更加灵活,实验资源更加丰富。
(2)是TFT液晶的RD信号(读使能信号,主要用于TFT液晶上像素数据的读取)的复用开关。STM32的RD-CLK信号连接到了74HC32的一个输入端,另一个输入端与RD-CLK-SEL相连,通过它来控制RD-CLK是否可以控制TFT的读使能(RD-CLK-SEL为0,则选通;反之TFT-RD则一直为1)。ZN-X上的这一设计方式有重要的作用,在后面的实验中大家可以深刻得领悟到。
图中③为USB串口模块专用接口,主要用于完成供电、串口通信与程序下载,如下图。
图中④是STM32 M3芯片,型号为STM32F103RBT6(128KB ROM、20KB RAM、主频最高可达72MHz)。
TFT液晶模块说明:
此实验中所使用的TFT液晶模块控制器为ILI9325,分辨率为320x240(QVGA),16位色(6万5千色)。接口定义如下图:
ILI9325支持8位与16位接口模式(J3断开为8位模式,短接为16位模式)。此实验中将提供这两种接口模式的源代码。8位模式更适合低端单片机,比如51、AVR等,可以节省IO资源,不过每读写一个像素都要有两个数据读写过程,显示速度并不太理想。16位模式适合ARM这种比较高端的芯片,可以得到较高的显示速度。实际上,使用ARM来驱动TFT,如果使用8位模式反而会比较麻烦,而且效率低下,通过对两种模式下源代码的比较大家应该能有所体会。
实验方法与流程:
主要代码如下:首先在TFT液晶的一个矩形区域写入像素数据,然后将此矩形中的像素全部读出,向将读出的数据写入到另一个矩形区域中。如果两个区域图形一致,则说明基本的写屏与读屏操作成功。
unsigned short Read_Rect[2048*4]; //读取TFT上64x64矩形像素放入此缓冲区

int main(void)
{  
    int i=0;

    delay_init();        //延时函数初始化     
    uart_init(9600);

    ZNX_Board_Init(); //ZN-X开发板板级初始化

TFT_Init();
    printf("TFT液晶初始化完成\r\n");

    TFT_Clear(0x001f); //纯色清屏

for(i=0;i<2048*4;i++) Read_Rect=i; //装入一些像素

    TFT_Send_Str("Write:",100+80,200+82,0xf800,0x001f);

    TFT_Draw_Rect(100,200,100+64,200+64,Read_Rect); //向矩形区域写入像素数据
    TFT_Send_Str("TFT Test",100+64,200+40,0xf800,0x07e0); //显示几个字符

    TFT_Read_Rect(100,200,100+64,200+64,Read_Rect); //读取矩形区域中的像素数据

    TFT_Send_Str("Copy:",10+80,10+82,0xf800,0x001f);
    TFT_Draw_Rect(10,10,10+64,10+64,Read_Rect); //将读到的像素数据写入到另一个矩形区域中

    while(1);
}
实验结果如下图所示:
图中上电后首先将TFT清屏为红色,标有“Write”字样的区域为“写屏区域”,读取其中的像素之后,再写入到标有“Copy”字样的区域中。可以看到两个区域图形是一致的,这说明了写屏与读屏实验是成功的。
源代码下载:

振南ZN-X开发板TFT液晶基本功能测试(写屏与读屏)8位模式[暂不提供]



相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝