ARM7通过串口实现液晶显示的一种方法(C语言)

在工业应用中常遇到单片机直接驱动彩色液晶模块显示的情况,如水表仪器显示、广播控制设备信息显示等。较为高级的显示设备还可以兼备触摸功能。结合项目的实际开发,本文简单描述ARM7单片机通过串口输出实现液晶显示的一种方法,希望对大家有所帮助。

首先需要正确连接硬件模块。结合液晶模块的使用说明将硬件设备进行正确连接。串口一般用于接收显示指令、下载图片及发送触摸坐标等功能。硬件设备连接完毕后,首先进行串口的初始化配置。在实际应用中采用串口PDC传输通道进行数据的传输,这样可减少数据传输所需时钟周期,使得处理器更加高效。初始化配置如下:

AT91F_PMC_EnablePeriphClock();

AT91F_PIO_CfgPeriph();

AT91F_US_Configure();

AT91F_US_EnableTx();

AT91F_US_EnableRx();

串口初始化配置主要完成时钟使能、引脚配置、通信参数配置及PDC初始化。正确的参数配置是程序正常工作的前提,对于传输速率等的使用应参考显示终端的使用说明。

串口配置成功后即可驱动液晶模块进行显示。首先将需要显示的数据信息以十六进制形式存放在数组内,然后通过开启PDC传输将数据发往液晶模块进行显示。代码如下:

while(!(AT91C_BASE_US1->US_CSR &AT91C_US_ENDTX));           //等待上次传输完成

for(i=0; i<256; i++)

         COM1TxBuffer[i]= Test_Data[i];                                                         //Test_Data数组存放显示数据

AT91F_PDC_DisableTx(COM1_PDC);

COM1_PDC->PDC_TPR = (unsignedint)COM1TxBuffer;

COM1_PDC->PDC_TCR=256;

COM1_PDC->PDC_TNPR=0;

COM1_PDC->PDC_TNCR=0;

AT91F_PDC_EnableTx(COM1_PDC);                                                      //开启PDC数据传输通道

显示数组中存放的数据一般不只是包含要显示的数据,还包含了显示帧指令。比如在VTK系统智能显示终端上若采用快速显示字符串,则指令结构如下:

数据块

1

2

3

4

数据

0xAA

0x98

0x01 0x02…….

0xCC 0x33 0xC3 0x3C

说明

帧头 固定

指令码

参数,最大为2K字节

帧结束符

显示终端的背景色、字体颜色设置、日期、时间设置及清屏等动作的显示方式需参考其使用说明。一般对应的指令码有所不同。

 

(文章原创,转载请声明)

你可能感兴趣的:(ARM7通过串口实现液晶显示的一种方法(C语言))