7寸视频&串口显示模组开发指南之3——指令集
题记:
历经一年,终于完成了视频&串口模组的开发和研制,目前已经开始向部分客户小批量供货了。从最原始的5.7寸640*480的视频采集模组,到5.7寸640*480的视频&串口模组,再到今天7寸800*480的视频&串口模组,特权花费了很大的心血,尤其是第一台原型样机的开发调试。
借着2011年EDN创新奖的“东风”,这款7寸的视频&串口模组(型号:M070AS26)也有机会搬上台面与各位网友见面。特权同学希望藉着后面一系列的开发指南、应用参考和调试技巧,能够帮助各位全方面的了解她。也希望各位看官能够不吝惜手中的鼠标,轻轻一点投上一票。若是正好项目中能够用上类似产品,那就正好考察一下这台模组的功能、性能。
大家若对后续的文章有任何看法见解或是建议要求,特权同学都愿意洗耳恭听——或许您的一句话就会带来我们下一款产品的创新和超越。
(投票链接:http://award.ednchina.com/Product/Product_Detail.aspx?ProductId=1109)
7寸视频&串口显示模组预留给客户一条符合RS232电平标准的串口收发信号,用户只要使用这条串口通道给模组传送指令即可实现所有功能。这个串口通道通常有两个用途:一是用户的最终应用(用户嵌入式系统的串口与模组互连);二是下载用户的界面图片到模组中(PC机与模组互连)。
本文重点介绍模组的指令集以及实现的效果,后续文章会详细讨论如何使用PC机或是单片机系统与模组通信,以实现图片下载或终端应用。按照前面的分类,模组支持的指令集主要也分为两大类,一类是用户的最终应用,另一类是图片字库等的下载交互。由于后者的功能都集成在了晶奥科技提供的“晶奥串口模组集成开发工具”软件中,用户也无需深入了解指令集的详细内容,因此本文不详细论述和讨论。而对于用户终端应用(与单片机、ARM或DSP等相接口)的指令集本文要详细论述。该视频&串口模组的主要可用指令如表1所示。
表1 7寸视频&串口指令集
分类 |
功能 |
指令 |
指令参数 |
描述 |
系统 |
握手指令 |
0x00 |
|
在初始化时,单片机不断发送完整的握手指令(包括帧头和帧尾),若接收到正确的返回数据(0xaa+version(1Byte版本号)),表示系统初始化完成,可以执行其它操作。 |
显示参数配置 |
设置调色板 |
0x40 |
Fcor(2Byte) + Bcor(2Byte) |
设置前景色(Fcor)和背景色(Bcor)。 |
设置字符显示间距 |
0x41 |
Xdis(1Byte) + Ydis(1Byte) |
文本显示时,Xdis为相邻左右字符的间距,Ydis为相邻上下字符的间距(Ydis目前暂时无效,以0x00,0x00代替)。 | |
文本显示 |
16X16点阵GB2312国标简体汉字 |
0x54 |
Xadd(2Byte) + Yadd(2Byte) + String |
(Xadd,Yadd)为当前字符串显示的启示坐标。String为多个需要显示的国标码值。每个国标码为两个字节,其中高字节在前、低字节在后。若显示ASIIC码,则直接送ASIIC码值即可。 |
32X32点阵GB2312国标简体汉字 |
0x55 | |||
64X64点阵GB2312国标简体汉字 |
0x6e | |||
置点 |
背景色显示多个点 |
0x50 |
Xadd(2Byte)+Yadd(2Byte) +…… |
(Xadd,Yadd)为当前需要显示背景色像素点的坐标。若显示n个点,则连续送n次的X和Y坐标值。该指令主要用于删除点。 |
前景色显示多个点 |
0x51 |
(Xadd,Yadd)为当前需要显示前景色像素点的坐标。若显示n个点,则连续送n次的X和Y坐标值。 | ||
多线段连线 |
多个指定点用线段进行连接(前景色) |
0x56 |
Xadd(2Byte)+Yadd(2Byte) +…… |
(Xadd,Yadd)为当前需要用前景色连线的像素点坐标。若连接n个点,则送n次X和Y坐标值。 |
多个指定点用线段进行连接(背景色) |
0x6d |
(Xadd,Yadd)为当前需要用背景色连线的像素点坐标。若连接n个点,则送n次X和Y坐标值。该指令主要用于删除点。 | ||
频谱显示 |
0x75 |
X0add(2Byte)+Y0add(2Byte)+Hmax+h1+h2+…… |
X0add为x轴坐标起点,Y0add为频谱水平起点,Hmax(1Byte)为谱线的最大高度。hi(0=0,1,2……)为单根谱线的高度(1Byte),每增加一个i值,x轴坐标自动增1。谱线显示前景色,比hi值大的区域显示背景色。 | |
画圆 |
画圆弧 |
0x57 |
Type(1Byte) + xadd(2Byte) + yadd(2Byte) + r(1Byte) |
Type=0x00:背景色画圆;Type=0x01:前景色画圆。以(xadd,yadd)为圆心,画半径为r的圆弧。 |
区域操作 |
区域清屏(背景色填充) |
0x64 |
X0add2Byte) + Y0add(2Byte) + X1add2Byte) + Y1add(2Byte) |
对起始坐标(X0add,Y0add)到结束坐标(X1add,Y1add)的矩形区域使用背景色填充。 |
整屏清屏 |
0x52 |
无 |
背景色填充整屏显示。 | |
图片显示 |
满屏区 |
0x70 |
Photo_num(1Byte) |
显示Flash中预存的第 Photo_num(0-49)幅满屏图片。 |
小图区 |
0x9c |
Photo_num(1Byte) + xadd(2Byte) + yadd(2Byte) |
在以(xadd,yadd)为起点的位置显示Flash中预存的第Photo_num(0-191)幅小图片。 | |
背光控制 |
背光开启/关闭 |
0x5e |
On_off(1Byte) |
0xff—开启,0x00—关闭。上电默认关闭。开启背光的同时PWM被设置为100。 |
背光PWM调节 |
0x5f |
Pwm(1Byte) |
Pwm取值1-100,上电默认为100。 | |
触摸屏控制 |
校准模式 |
0xe4 |
0x55+0xaa+0x5a+0xa5 |
MCU发送该指令后,液晶屏四个角上出现蓝色矩形框,用户需要用触摸笔依次点击“左上角”、“左下角”、“右下角”、“右上角”。点击相应位置并保持几十ms后该区域变成绿色,表示该点校准成功。 |
开关控制 |
0x66+0x99+0x69+0xff |
开启触摸屏控制 | ||
0x66+0x99+0x69+0x00 |
关闭触摸屏控制,上电后默认关闭 | |||
触摸屏按下后位置上传 |
0x73 |
Xpos(2Byte) + Ypos(2Byte) |
该指令为串口模组发送给MCU。Xpos为X坐标值,Ypos为Y坐标值,均为16位,且高字节在前传送。 | |
串口控制 |
波特率设置寄存器 |
0xe0 |
Bps_set(1Byte) |
Bps_set值用于设置串口波特率,上电后模组默认串口波特率为9600bps。如果需要更改波特率,则在9600bps波特率下发送相应指令。指令译码见特别说明。 |
AV显示控制 |
拍照指令 |
0x80 |
0x40 + page(1Byte) |
执行一次拍照操作,page表示拍照存储页,可取值为1-7。 |
拍照显示 |
0x41 + page(1Byte) |
执行拍照显示,page表示显示的拍照页,可取值为1-7,当希望返回正常实时AV显示时,设置page = 0即可。 | ||
视频显示模式 |
0x88 |
Dis_mode(1Byte) + Xpos(2Byte) + Ypos(2Byte) |
Dis_mode为视频缩放控制寄存器:0—640*480; 1--480*360; 2—400*300; 3—320*240; Xpos和Ypos为视频显示起始坐标,高字节在前。 | |
AV芯片配置功能 |
0x8f |
ADDR(1Byte) + DATA(1Byte) |
具体功能定义查看说明⑧ |
① 串口波特率可调,上电默认为9600bps。
② 帧头0xaa,帧尾0xcc,0x33,0xc3,0x3c。
③ “文本显示”前需要设置好“显示参数配置”选项。
④ 当叠加层色彩为0x0000时,当前显示视频层图像;当叠加层色彩为0xffff时,则当前显示图片层图像;否则,当前像素将显示叠加层数据所表示的相应色彩。
⑤ 控制器内部串口缓冲区为128Byte,建议用户一次串口指令发送数据总量不要超过128Byte。
⑥ 对于某些指令,如清屏指令需要耗费比较长的执行时间,用户在使用中需要在一定延时后才可再次发送其它指令。
⑦ 串口波特率设置指令译码(建议实际应用中波特率不要超过115200bps,以保证系统长期正常稳定工作):
Bps_set指令值 |
0x00 |
0x01 |
0x02 |
0x03 |
0x04 |
0x05 |
0x06 |
0x07 |
波特率 |
1200 |
2400 |
4800 |
9600 |
19200. |
38400 |
57600 |
115200 |
Bps_set指令值 |
0x08 |
0x09 |
0x0a |
0x0b |
0x0c |
0x0d |
0x0e |
0x0f |
波特率 |
28800 |
76800 |
62500 |
125000 |
250000 |
230400 |
345600 |
691200 |
⑧ 图片区存储说明:满屏区(位号0-49可用),该区主要用于存储满屏(800*480)图片。小图区(位号0-191可用),小图区又分为多个不同大小的图片存储块,通常建议用户根据所用图片实际大小将图片放置到对应的存储区块中,这样更有利于存储空间的利用和优化。图片存储量的计算公式为:图片X分辨率*图片Y分辨率*2(单位Byte)。例如,一张分辨率为160*30的图片存储量为160*30*2=9600Byte。
大区 |
小区(可用位号) |
图片存储量范围 | |
最小 |
最大 | ||
满屏区 |
0-49 |
满屏(800*480*2Byte) |
满屏(800*480*2Byte) |
小图区 |
0-63 |
0 |
满屏(800*480*2Byte) |
64-127 |
0 |
382Kbyte | |
128-191 |
0 |
126Kbyte |
⑨ AV芯片配置功能
该指令用于配置AV芯片的相关寄存器。该指令的配置数据有两个字节:第一个字节为AV芯片配置地址,第二个字节为AV芯片配置数据。
AV芯片配置可操作的地址和数据如下表所示。
功能 |
配置地址(ADDR) |
配置数据(DATA) |
设置对比度 |
0x05 |
(默认0x80) |
设置亮度 |
0x06 |
(默认0x00) |
设置色调 |
0x07 |
(默认0x80) |
设置饱和度 |
0x08 |
(默认0x88) |
低功耗关断 |
0x04 |
0x18 |
正常工作 |
0x04 |
0x10 |
彩色显示 |
0x0b |
0x23 |
黑白显示 |
0x0b |
0xa3 |
选择VIN1 |
0x09 |
0x02 |
选择VIN2 |
0x09 |
0x42 |
自动选择 |
0x09 |
0x82 |
测试信号关:显示AV信号 |
0x0c |
0x00 |
测试信号:黑屏 |
0x0c |
0x20 |
测试信号:蓝屏 |
0x0c |
0x21 |
测试信号:75%彩条 |
0x0c |
0x22 |
测试信号:100%彩条 |
0x0c |
0x23 |
由于不同的指令在串口模组内处理的时间不同,因此建议用户在发送每帧串口指令后适当的延时(部分指令不需要)。延时的长短要视指令而定,下面对几个主要指令的延时计算方法做一些说明(未罗列的指令通常不需要延时)。
指令 |
延时 |
备注 |
区域清屏(背景色填充) |
>240ns*x*y |
x*y为清屏区域总像素点数 |
整屏清屏 |
>240ns*800*480=92160000ns(约93ms) |
|
显示一幅满屏图片 |
>82ms |
|
显示一幅小图片 |
>[(x*y)/1024+1]*230us |
|
该应用指南适用于晶奥信息科技有限公司自主研发生产的串口系列(包括视频&串口系列)液晶显示模组,对模组的各个串口控制指令的使用和注意事项进行详细的说明,并给出相应的参考实例。
晶奥串口模组的用户控制端均采用异步、全双工串口(UART)通信。串口模式为8n1,即每个数据传送采用十个位:1个起始位、8个数据位(低位在前传送,LSB)和1个停止位。
上电时,默认串口波特率为9600bps,用户可通过发送特定指令重新设置波特率,可设置的波特率范围是:1200bps-691200bps,具体设置方法参照章节4.11。
晶奥SOC串口的数据帧由4个数据块组成,如表1所示。
表1 串口指令帧结构
数据块 |
帧头 |
指令 |
数据 |
帧尾 |
数据 |
0xaa |
…… |
…… |
0xcc,0x33,0xc3,0x3c |
描述 |
帧头,固定 |
指定功能 |
数据,最多120字节 |
帧尾,固定 |
本文档的指令或数据均以十六进制(HEX)格式表示。
在实际帧数据传输中,对于字型(2字节)数据,若无特别说明,均为高字节先传送(MSB)。例如:x坐标为100,其HEX格式数据为0x0064,传送时,传送顺序为0x00,0x64。
对于我们公司的串口模组,无特别说明,都支持表2所列的通用串口指令。若串口模组的使用说明书中指令与表2不同,则以使用说明书为准。
表2 通用串口指令表
分类 |
功能 |
指令 |
指令参数 |
系统 |
握手指令 |
0x00 |
无 |
显示参数配置 |
设置调色板 |
0x40 |
Fcor(2Byte) + Bcor(2Byte) |
设置字符显示间距 |
0x41 |
Xdis(1Byte) + Ydis(1Byte) | |
文本显示 |
16X16点阵国标汉字 |
0x54 |
Xadd(2Byte) + Yadd(2Byte) + String |
32X32点阵国标汉字 |
0x55 | ||
64X64点阵国标汉字 |
0x6e | ||
置点 |
背景色显示多个点 |
0x50 |
Xadd(2Byte)+Yadd(2Byte) +…… |
前景色显示多个点 |
0x51 | ||
多线段连线 |
前景色链接多个点 |
0x56 |
Xadd(2Byte)+Yadd(2Byte) +…… |
背景色链接多个点 |
0x6d | ||
频谱显示 |
0x75 |
X0add(2Byte)+Y0add(2Byte)+Hmax+h1+h2+…… | |
画圆 |
画圆弧 |
0x57 |
Type(1Byte) + xadd(2Byte) + yadd(2Byte) + r(1Byte) |
区域操作 |
区域清屏(背景色填充) |
0x64 |
X0add2Byte) + Y0add(2Byte) + X1add2Byte) + Y1add(2Byte) |
整屏清屏 |
0x52 |
无 | |
图片显示 |
显示一幅满屏图片 |
0x70 |
Photo_num(1Byte) |
显示一幅小图片 |
0x9c |
Photo_num(1Byte) + xadd(2Byte) + yadd(2Byte) | |
背光控制 |
背光开启/关闭 |
0x5e |
On_off(1Byte) |
背光PWM调节 |
0x5f |
Pwm(1Byte) | |
串口控制 |
波特率设置寄存器 |
0xe0 |
Bps_set(1Byte) |
特殊串口指令针对于含有触摸屏控制或AV显示控制功能的特殊串口模组。若串口模组的使用说明书中指令与表3不同,则以使用说明书为准。
表3 特殊串口指令表
分类 |
功能 |
指令 |
指令参数 |
AV显示控制 |
拍照指令 |
0x80 |
0x40 + page(1Byte) |
拍照显示 |
0x41 + page(1Byte) | ||
视频显示模式 |
0x88 |
Dis_mode(1Byte) + Xpos(2Byte) + Ypos(2Byte) | |
AV芯片配置功能 |
0x8f |
ADDR(1Byte) + DATA(1Byte) | |
触摸屏控制 |
校准模式 |
0xe4 |
0x55+0xaa+0x5a+0xa5 |
开关控制 |
0x66+0x99+0x69+0xff | ||
0x66+0x99+0x69+0x00 | |||
触摸屏按下后位置上传 |
0x73 |
Xpos(2Byte) + Ypos(2Byte) |
TX: aa 00 cc 33 c3 3c
RX: aa version
参数说明:
? Version(1Byte):表示版本号。
功能描述:
在初始化时,一般建议单片机定时发送完整的握手指令(包括帧头和帧尾),直到接收到正确的返回数据(0xaa+version),如V1.0版则返回 aa 00,则表示系统初始化完成,可以对串口模组发送其它控制指令。
举例:
通过“串口调试助手”向串口模组发送“aa 00 cc 33 c3 3c”后,可以观察到返回握手成功数据,如图1所示。
图1 握手指令实例
TX: aa 40 cc 33 c3 3c
RX: 无
参数说明:
? Fcor(2Byte):表示前景色(16 bit / 65K色)
? Bcor(2Byte):表示背景色(16 bit / 65K色)
? 65K色(16 bit)调色板定义(5R6G5B模式)如表4所示。
表4 调色板定义
16 bit 65K色调色板位定义 | ||||||||||||||||
位 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
颜色 |
R4 |
R3 |
R2 |
R1 |
R0 |
G5 |
G4 |
G3 |
G2 |
G1 |
G0 |
B4 |
B3 |
B2 |
B1 |
B0 |
功能描述:
该指令用于设置前景色和背景色。发送该指令后液晶屏不会立刻有显示颜色变化,只有发送其它涉及前景色/背景色显示的指令时,屏才会有色彩显示变化。
举例:
TX: aa 40 f8 00 00 1f cc 33 c3 3c
即可设置前景色为红色(0xf800)背景色为蓝色(0x001f)。当用户使用背景色进行满屏清屏,然后使用前景色/背景色模式写字符“King-Eye”和“晶奥科技”时,效果如图2所示。
图2 调色板设置实例
注:调色板一旦设定好(除非重新设定),会一直保留下来。上图的白色字体为文档说明信息(后文类同),不是实例显示效果。
TX: aa 41 cc 33 c3 3c
RX: 无
参数说明:
? Xdis(2Byte):表示相邻左右两个字符的间距
? Ydis(2Byte):表示相邻上下两个字符的间距(此功能暂时保留,用0x00代替)。
功能描述:
当用户需要在液晶屏上写字符串时,可以先设置好字符间距(最大间距255像素点)。若不设置,上电后默认为0像素。
举例:
TX: aa 41 0a 00 cc 33 c3 3c
以上指令设置相邻左右两个字符的间距为10(0x0a)个像素,上下相邻的设置为0x00。图2在写入文本“晶奥科技”之前就预先设置好了字符间距,效果如图3所示。
图3 字符间距设置实例
注:字符间距一旦设定好(除非重新设定),会一直保留下来。
串口模组支持GB2312国标简体汉字库。包括以下3种大小的点阵字库:
? 16*16点阵
TX: aa 54 <String> cc 33 c3 3c
RX: 无
? 32*32点阵
TX: aa 55 <String> cc 33 c3 3c
RX: 无
? 64*64点阵
TX: aa 6e <String> cc 33 c3 3c
RX: 无
参数说明:
? Xadd(2Byte):表示字符放置的起始X坐标
? Yadd(2Byte):表示字符放置的起始Y坐标
? String:为多个需要显示的国标码值,每个国标码值为2个字节,其中高字节在前、低字节在后,若显示ASCII码,则直接送1个字节的ASCII码值即可。
功能描述:
发送该指令前需要设置调色板和字符间距。以指定的位置(Xadd,Yadd)为起始坐标,显示字符串String,字符颜色为前景色,底色为背景色。
举例:
首先设置好前景色为蓝色,背景色为黑色,设置字符横向间距为10像素;
先清全屏,然后再发送:aa 55 00 a0 00 a0 be a7 b0 c2 d0 c5 cf a2 bf c6 bc bc cc 33 c3 3c。该指令实现在坐标为(160,160)处(00a0即160)显示32X32点阵的“晶奥信息科技”(对应的bea7即‘晶’的国标码值,后面类推)。效果如图4所示。
图4 字符显示实例
TX: aa 50 …… cc 33 c3 3c
RX: 无
参数说明:
? Xadd_1(2Byte):第一个点的X坐标
? Yadd_1(2Byte):第一个点的Y坐标
? ……
? Xadd_n(2Byte):第n个点的X坐标
? Yadd_n(2Byte):第n个点的Y坐标
功能描述:
发送该指令前需要设置调色板(主要是背景色)。(Xadd,Yadd)为当前需要显示背景色像素点的坐标。若显示n个点,则连续送n次的X和Y坐标值。该指令主要用于删除点。
TX: aa 51 …… cc 33 c3 3c
RX: 无
参数说明:
? Xadd_1(2Byte):第一个点的X坐标
? Yadd_1(2Byte):第一个点的Y坐标
? ……
? Xadd_n(2Byte):第n个点的X坐标
? Yadd_n(2Byte):第n个点的Y坐标
功能描述:
发送该指令前需要设置调色板(主要是前景色)。(Xadd,Yadd)为当前需要显示前景色像素点的坐标。若显示n个点,则连续送n次的X和Y坐标值。
举例:
发送:aa 51 00 00 00 00 00 0a 00 0a 00 0a 00 64 cc 33 c3 3c
前景色显示3个点(假设已经设定前景色为红色),这三个点坐标分别是(0x0000,0x0000)、(0x000a,0x000a)和(0x000a,0x0064),十进制表示为(0,0)、(10,10)、(10,100),效果如图5所示。
图5 前景色显示点实例
TX: aa 56 …… cc 33 c3 3c
RX: 无
参数说明:
? Xadd_1(2Byte):第一个点的X坐标
? Yadd_1(2Byte):第一个点的Y坐标
? ……
? Xadd_n(2Byte):第n个点的X坐标
? Yadd_n(2Byte):第n个点的Y坐标
功能描述:
发送该指令前需要设置好调色板(主要是前景色)。(Xadd,Yadd)为当前需要用前景色连线的像素点坐标,若连接n个点,则送n次X和Y坐标值,这n个点将按照顺序依次用前景色线段相连。
举例:
发送:aa 56 00 0a 00 0a 00 64 00 64 00 32 00 96 00 c8 00 96 cc 33 c3 3c
以前景色线段依次连接4个点(10,10),(100,100),(50,150)和(200,150)。假设已经预设好前景色为红色,效果如图6所示。
图6 前景色连接线段实例
TX: aa 56 …… cc 33 c3 3c
RX: 无
参数说明:
? Xadd_1(2Byte):第一个点的X坐标
? Yadd_1(2Byte):第一个点的Y坐标
? ……
? Xadd_n(2Byte):第n个点的X坐标
? Yadd_n(2Byte):第n个点的Y坐标
功能描述:
发送该指令前需要设置调色板(主要是背景色)。(Xadd,Yadd)为当前需要用背景色连线的像素点坐标,若连接n个点,则送n次X和Y坐标值,这n个点将按照顺序依次用背景色线段连接。
TX:aa 75
RX:无
参数说明:
? X0add(2Byte):X轴起始坐标
? Y0add(2Byte):频谱水平(Y轴)起点坐标
? Hmax(1Byte):频谱最大高度
? h1(1Byte):第1根谱线高度
? h2(1Byte):第2根谱线高度
? ……
? hn(1Byte):第n根谱线高度
功能描述:
发送该指令前需要设置好调色板。X0add为x轴坐标起点,Y0add为频谱水平起点坐标,Hmax(1Byte)为谱线的最大高度。hn(n=0,1,2……)为单根谱线的高度(1Byte),每增加一个i值,x轴坐标自动增1。谱线显示前景色,比hi值大的区域显示背景色。
举例:
发送:aa 75 00 64 00 32 64 0a 32 55 11 36 cc 33 c3 3c
频谱起始坐标为(100,50),最大高度为100像素,谱线高度依次为:10、50、85、17、54。效果如图7所示。
图7 频谱显示实例
TX:aa 57 cc 33 c3 3c
RX:无
参数说明:
? Type(1Byte): Type=0x00:背景色画圆;Type=0x01:前景色画圆
? Xadd(2Byte):圆心X坐标
? Yadd(2Byte):圆心Y坐标
? R(1Byte):圆的半径
功能描述:
发送该指令前需要设置好调色板。当Type=0x00时,即以(Xadd,Yadd)坐标为圆心、R为半径、背景色画圆。
举例:
发送:aa 57 01 00 64 00 64 00 32 cc 33 c3 3c
前景色画圆,圆心坐标(100,100),圆的半径为50像素,效果如图8所示。
图8 画圆显示实例
TX:aa 52 cc 33 c3 3c
RX: 无
功能描述:
发送该指令前需要设置调色板。实现效果为背景色填充全屏显示。
TX:aa 64 cc 33 c3 3c
RX:无
参数说明:
? X0add(2Byte):区域清屏起始X坐标
? Y0add(2Byte):区域清屏起始Y坐标
? X1add(2Byte):区域清屏结束X坐标
? Y1add(2Byte):区域清屏结束Y坐标
功能描述:
发送该指令前需要设置调色板。对起始坐标(X0add,Y0add)到结束坐标(X1add,Y1add)的矩形区域使用背景色填充。
举例:
TX1:aa 53 cc 33 c3 3c
TX2:aa 64 0064 0064 00c8 00c8 cc33c33c
先设置背景色为蓝色,然后发送清全屏为蓝色的指令(TX1);再设置背景色为红色,把(100,100)到(200,200)的区域清屏为红色(TX2)。效果如图9所示。
图9 清屏指令实例
TX:aa 70 cc 33 c3 3c
RX : 无
参数说明:
? Photo_num(1Byte):Flash中预存的满幅图片的位号
功能描述:
显示满幅图片时,需要先用清屏指令将全屏清屏清为0x0000(即透明色,含有AV的串口模组0xffff为图片层透明色),才可以显示图片。
TX:aa 9c cc 33 c3 3c
RX:无
参数说明:
? photo_num(1Byte):Flash中预存的小图片的位号
? Xadd:放置小图片的起始X坐标
? Yadd:放置小图片的起始Y坐标
功能描述:
在以(xadd,yadd)为起点的位置显示Flash中预存的第Photo_num幅小图片。显示小图片时,需要先把要显示的部分清屏为图片透明层(清屏为0x0000,含AV功能的模组相应清屏为0xffff)。
举例:
TX1:aa 70 0a cc 33 c3 3c
TX2:aa 9c 14 00 64 00 64 cc 33 c3 3c
首先,清全屏为透明层;然后显示一张存放在Flash中第10号位的满副图片(TX1);再显示一张存放在第20号位的小图片(TX2),显示的开始坐标为(100,100)。效果如图10所示。
图10 图片显示实例
TX:aa 5e 00 cc 33 c3 3c (背光关闭)
RX:无
TX:aa 5e ff cc 33 c3 3c (背光开启)
RX:无
功能描述:
背光开启/关闭指令可以控制液晶屏的背光关断,串口模组上电默认关闭背光。
1.4.2 背光PWM调节(部分模组有效)
TX:aa 5f cc 33 c3 3c
RX:无
参数说明:
? Pwm(1Byte):PWM取值1-100
功能描述:
调节背光PWM值,上电开背光默认值为PWM=100。
TX:aa e0 cc 33 c3 3c
RX:无
参数说明:
Bps_set(1Byte)取值的相应波特率设置如表5所示。
表5 波特率设置表
Bps_set |
0x00 |
0x01 |
0x02 |
0x03 |
0x04 |
0x05 |
0x06 |
0x07 |
波特率 |
1200 |
2400 |
4800 |
9600 |
19200. |
38400 |
57600 |
115200 |
Bps_set |
0x08 |
0x09 |
0x0a |
0x0b |
0x0c |
0x0d |
0x0e |
0x0f |
波特率 |
28800 |
76800 |
62500 |
125000 |
250000 |
230400 |
345600 |
691200 |
功能描述:
该指令用于设置串口波特率,上电后模组默认串口波特率为9600bps。如果需要更改波特率,则在9600bps波特率下发送相应指令。同样的,在其他波特率下,也可以通过该指令进行波特率切换。
1.6 AV显示控制
AV层的显示需要先使用清屏指令将液晶上需要显示AV视频图像的的区域清屏为0x0000。含有AV视频显示的串口模组,相应的图片层显示则是清叠加层色彩为0xffff。
TX:aa 80 40 cc 33 c3 3c
RX:无
参数说明:
? Page(1Byte):表示拍照存储页,可取值为1-7
功能描述:
执行一次拍照,拍摄当前AV显示的图像,并把照片存储在显存的第page页中。
TX:aa 80 41 cc 33 c3 3c
RX:无
参数说明:
? Page(1Byte):表示显示已存储图像所在页,可取值为1-7
功能描述:
显示已经存储在第page页的图像,当期望返回实时AV图像显示时,可以设置page=0。
TX: aa 88 < Dis_mode > cc 33 c3 3c
RX:无
参数说明:
? Dis_mode(1Byte):视频缩放控制器。对应模式设置值如表6所示。
表6 视频显示模式设置
Dis_mode值 |
0x00 |
0x01 |
0x02 |
0x03 |
缩放AV |
640*480 |
480*360 |
400*300 |
320*240 |
? Xpos(2Byte):AV显示位置的起始X坐标
? Ypos(2Byte):AV显示位置的起始Y坐标
功能描述:
设置视频缩放模式,并显示在指定位置。
举例:
TX:aa 88 03 00 64 00 74 cc 33 c3 3c
在发送该指令前需要先将显示AV的区域清屏为(0x0000)。然后发送该指令,即可看到在(100,100)的位置显示320*240的AV视频。效果如图11所示。
图11 视频显示实例
1.1.1 AV芯片配置功能
TX:aa 8f cc 33 c3 3c
RX:无
参数说明:
可配置的ADDR和DATA值定义如表7所示。
表7 AV芯片配置参数定义
功能 |
配置地址(ADDR) |
配置数据(DATA) |
设置对比度 |
0x05 |
(默认0x80) |
设置亮度 |
0x06 |
(默认0x00) |
设置色调 |
0x07 |
(默认0x80) |
设置饱和度 |
0x08 |
(默认0x88) |
低功耗关断 |
0x04 |
0x18 |
正常工作 |
0x04 |
0x10 |
彩色显示 |
0x0b |
0x23 |
黑白显示 |
0x0b |
0xa3 |
选择VIN1 |
0x09 |
0x02 |
选择VIN2 |
0x09 |
0x42 |
自动选择 |
0x09 |
0x82 |
测试信号关:显示AV信号 |
0x0c |
0x00 |
测试信号:黑屏 |
0x0c |
0x20 |
测试信号:蓝屏 |
0x0c |
0x21 |
测试信号:75%彩条 |
0x0c |
0x22 |
测试信号:100%彩条 |
0x0c |
0x23 |
功能描述:
该指令用于配置AV芯片的相关寄存器。该指令的配置数据有两个字节:第一个字节为AV芯片配置地址,第二个字节为AV芯片配置数据。
1.2.1 触摸屏开/关控制
TX:aa e4 66 99 69 ff cc 33 c3 3c (触摸屏开启)
RX:无
TX:aa e4 66 99 69 00 cc 33 c3 3c(触摸屏关闭)
RX:无
功能描述:
串口模组上电默认状态下触摸屏被关闭,通过触摸屏开启指令可以使能触摸屏控制功能。
TX:aa e4 55 aa 5a a5 cc 33 c3 3c
RX:无
功能描述:
发送该指令后,液晶屏四个角上依次出现蓝色十字框,用户需要用触摸笔依次点击相应位置并保持几十毫秒。一共需要有效点击四次。完成四次点击后,模组返回0xaa+0xf0表示响应。发送该指令前需要先开启触摸屏控制功能。(注意:用户的产品上没有配触摸屏的时候请勿发送该指令,如误发送,则可能需要重启)。
TX:无(触摸屏触发,即触摸屏某位置被按下)
RX:aa 73 cc 33 c3 3c
参数说明:
? Xpos(2Byte):被触发的X坐标值,高字节在前
? Ypos(2Byte):被触发的Y坐标值,高字节在前
功能描述:
当触摸屏某位置被按下时,串口模组会返回该指令。通过该指令,串口模组把触摸屏触发的坐标发送给用户。
举例:
使用晶奥科技提供的“串口调试助手”可以接收到触摸屏触发后串口模组发回的数据,如图12所示。
图12 触摸屏控制实例
其中0x0108,0x003b分别表示触发位置的X和Y坐标。
文章评论(0条评论)
登录后参与讨论