串口指令的简介和用法

通讯指令:通讯指令,是用户向串口屏模块发送的指令。 脚本指令:脚本指令,是串口屏模块内部脚本,计算数据,控制页面控件,以及发送数据给用户。 这里介绍的是通信指令。

功能

用户通过通讯指令控制串口屏模块。
通讯指令通过串口发送,发送方式为ASCII码方式

基本格式

命令码标识 + 参数1(+参数2) + 结束符[回车换行,即\r\n,十六机制为0x0D,0x0A]

特点

通过精简的方式控制串口屏模块,命令极少。
串口数据为 ascii码方式,更加人性化,也方便初学者上手,曲线透传数据除外。
串口命令以回车换行作为帧尾,没有数据帧头,减少客户组合数据时的操作。

1. 串口命令的发送格式举例

用USB转串口(TTL或485)工具、连接串口屏的4pin座子。注意不是type-C口,type-C口只能用于下载工程文件,不能用于通信

示例1

打开串口助手,设置正确的波特率,打开串口。输入命令 version,勾选发送新行,点击发送,串口助手即可收到串口屏返回的版本信息。有的串口助手没有【发送新行】选项,需要手动输入回车换行,参考示例2

示例2

打开串口助手,设置正确的端口和波特率,打开串口。输入命令 version和[Enter键],点击发送,串口助手即可收到串口屏返回的版本信息

示例3

用单片机程序发送。

假设用户发送串口数据的函数定义为: void uart_send(char *ptr);

那么页跳转的方式为:uart_send(“page 8\r\n”);,串口数据为page 8(回车换行)

2. 查看所有指令 :help

指令名

功能

参数及举例

help

回传所有可用串口指令

无参数。
串口数据举例:help(+回车换行)
回传数据:
help
- help
page
- page name/page id
wset
- wset name value
wget
- wget name
sset
- sset name value
sget
- sget name
event
- event name val
click
- click name
adjust
- adjust
factory
- return to factory,only valide 100ms before power on
addt
- HEX format
pisx
- HEX format
version
- get information
reset
- reset 1

3. 页面跳转指令 :page

指令名

功能

参数及举例

page

页面跳转

page
name/id(+回车换行)
参数:
页面名称/页面ID
举例:
跳转到页面“main”,页面”main”的id为 0,
则命令为:page main 或者 page 0
回传数据:参看后面通讯指令返回值介绍
注:只有此命令可以使用ID号来跳转。

4. 控件属性设置指令 :wset

指令名

功能

参数及举例

wset

设置页面以及控件的属性值

wset
name value(+回车换行)
参数:页面\控件名称·属性名称 属性值。
举例:
wset text1.txt “明天会更好”
//设置当前显示页面的文本控件text1的txt属性为“明天会更好”
wset main.text1.txt “明天会更好”
//设置页面‘main’中文本控件“text1”的“txt”为“明天会更好”
wset num1.val 100
//设置当前页面数字控件num1的val属性为100
回传数据: 执行结果。参看后面通讯指令返回值介绍。

说明:
页面\控件名称是带有可查找路径的名称,要设置页面的属性,则用“wset 页面名称.属性名称”,如:
wset main.bgColor 0xFFFF0000 //设置页面main的背景颜色为红色
wset main.num1.val 123 //设置页面main中整数控件num1的当前值为123
属性值有三种类型,整数,小数,字符串。注意字符串类型需要用双引号括起来。中英文字符串,注意制作串口屏工程时选择的字符编码(工具->项目设置),和发送命令的用户编译环境选择的字符编码一致。如:VP中字符编码选择GBK,那么用户发送的字符串编码也得是GBK。
如果设置页面的属性,则必须写明页面路径。

5. 控件属性值获取指令 : wget

指令名

功能

参数及举例

wget

取得页面以及控件的属性值

wget
name (+回车换行)
参数:
页面\控件名称·属性名称。
举例:
wget text1.txt
//读取当前页面文本控件text1的txt属性
wget main.text1.txt
//读取页面main中的文本控件text1的txt属性
回传: 属性值。参看后面通讯指令返回值介绍。

说明:
页面\控件名称是带有可查找路径的名称,如果要读取页面的属性,则用“wget 页面名称.属性名称”, 如:
wget main.name //获取main页面的页名称(读出来是字符串形类型,可赋给文本控件打印显示)
wget page1.numf1.valf //获取page1页面的浮点数控件numf1的浮点数值
返回的属性值有三种类型,整数,小数,字符串,整数和小数都用十六进制码表示,小端在前;中英文字符串,返回中英文的ascii码值或者区位码值,十六进制表示。注意制作串口屏工程时选择的字符编码(工具->项目设置),和发送命令的用户编译环境选择的字符编码一致。
如果获取页面的属性,则必须写明页面路径。

6. 设置系统变量 : sset

指令名

功能

参数及举例

sset

设置系统变量

sset
name value(+回车换行)
参数:
系统变量名称 系统变量值(全部为整数类型)。
举例:
设置系统亮度为100 。
命令:
sset sys_light 100
回传数据: 执行结果。参看后面通讯指令返回值介绍。
说明:
sys_light ,是系统变量–背光亮度的名称,100是亮度级别。系统变量会在后面页面列举介绍。

7. 设置系统变量 : sget

指令名

功能

参数及举例

sget

读取系统变量的值

sget
name (+回车换行)
参数:
系统变量名称。
举例:
取得系统亮度为100 。
命令:
sget sys_light
回传数据: 系统变量值。参看后面通讯指令返回值介绍。
说明:
sys_light ,是系统变量– 背光亮度的名称,亮度级别 1-100。系统变量会在后面页面列举介绍。

8. 事件触发 :event

指令名

功能

参数及举例

event

事件触发

event
name val(+回车换行)
参数:
name :控件名称,支持 按钮,触摸热区,双态按钮,定时器。
val:触发类型值:1 按下事件,2 弹起事件。
举例:
event button0 1 //触发按钮button0的按下事件。

说明:
此指令可以触发按钮控件,触摸热区控件,双态按钮控件的按下、弹起的处理脚本。
event timer 1
//触发定时器脚本,会立即执行定时器脚本,定时器的interval设置(触发事件的间隔时间)将无效。

9. 模拟点击 :click

指令名

功能

参数及举例

click

模拟点击事件

click
name (+回车换行)
参数:
name :控件名称,支持 按钮,触摸热区,双态按钮。
举例:
click button0 //模拟按钮button0被按下。
发送此指令按下按钮后,就等于模拟做了按下弹起动作,按钮会执行按下和弹起里面的脚本事件。

说明:
此指令可以模拟按下按钮控件,触摸热区控件,双态按钮控件。
方便没有触摸屏时,用户使用物理按键操作串口屏模组。

10. 触摸校准&恢复出厂 :adjust & factory

指令名

功能

参数及举例

adjust

触发触屏校准功能

adjust(+回车换行)
参数:无
举例:adjust
注意:进入触屏校准页面后,需手动触屏校准完才退出。
此指令对VP编辑软件无效。

factory(+回车换行)
参数:无
举例:factory
注意:此命令会擦除用户工程。对固件无影响。
如果需要重新下载串口屏工程,请重新上电下载。
此指令对VP编辑软件无效。

11. 曲线数据透传 : addt

指令名

功能

参数及举例

addt

曲线控件数据透传指令
该指令参数使用16进制数据, 不需要结束符,回车换行\r\n(0x0D 0x0A )

命令格式:
[0~3] 指令名addt,即 0x61 0x64 0x64 0x74
[4] 页ID
[5] 控件ID
[6] 通道号0~2,一个曲线控件最多3个通道
[7~8] 数据字节字节数N,小端模式。例如100个char型数据,十六进制为0x0064,命令中为64 00。注意曲线控件的属性numType,char类型:1个字节表示一个点;short类型:2个字节表示一个点;int、float类型:4个字节表示一个点。
[9~11] 备用。填00 00 00即可。
[12~12+N] 数据。可以分为4个类型:int(4字节) short(2字节) char(1字节)
float(4字节),在串口屏工程中曲线控件属性中设置,组织传输数据时,要和属性设置一致。

举例:
设置0通道byte类型10个点:61 64 64 74 00 04 00 0A 00 00 00 00 01 02
04 06 08 0A 0C 0E 10 12
byte类型,一个字节表示一个点
设置0通道int类型3个点:61 64 64 74 00 04 00 0C 00 00 00 00 01 00
00 00 02 00 00 00 03 00 00 00
int 类型,4个字节表示一个点,小端模式,这里三个点分别是0x00000001,0x00000002,0x00000003
设置0通道float类型3个点:61 64 64 74 00 04 00 0C 00 00 00 00 9a 99
99 3F 9A 99 19 40 66 66 66 40
float类型,4个字节表示一个点,小端模式,这里三个点分别是1.2 , 2.4 , 3.6

##显示点阵 :pisx(弃用)

指令名

功能

参数及举例

pisx

显示点阵数据

参数介绍:
[0~3]指令名pisx,即 0x70 0x69 0x78 0x73
[4-5] 起始横坐标
[6-7] 起始竖坐标
[8]单个字模宽度
[9]单个字模高度
[10-12]颜色,小端模式,如红色0xFF0000,[11]00,[12]00,[13]FF
[13-14]字模数据字节数
[15-N]字模数据,1bit对应一个像素点
取模说明:逐行式,从第一行开始向右每取8个点作为一个字节,如果最后不足8个点就补满8位。取模顺序是从高到低,即第一个点作为最高位

说明:此功能实现了客户想显示一些字库中没有特殊字符或者单色图片,显示时需要用户实时发送,例如
笑脸等用户自定义有个性的图标。
举例:
70 69 78 73 \命令码 | 00 00 \起始横坐标 | 0A 00 \起始竖坐标 | 10 \字模宽度16 | 10\字模高度16
00 00 FF \颜色0xFF0000,红色 |20 00 \字模字节数32
08 80 08 80 08 80 11 FE 11 02 32 04 34
20 50 20 91 28 11 24 12 24 12 22 14 22 10 20 10 A0 10 40
\字模数据”你”,16*16,宋体,不加粗,不斜体
注意:该命令已弃用,建议使用图片或者其他控件,显示特殊字符。

12. 查询版本信息 :version

指令名

功能

参数及举例

version

查询版本信息

version
(+回车换行)
参数:无。
举例:
version 查询串口屏硬件相关信息。

说明:
此指令可查询串口屏的型号,flash大小,固件的时间版本。
在VP编辑软件或其它串口助手上发送,会返回上述信息。
此指令需用串口连接串口屏后查询才有返回信息。

13. 复位屏幕 :reset

指令名

功能

参数及举例

reset

复位屏幕

reset 1 (+回车换行)
参数:1
举例:
reset 1

说明:
此指令可以模拟屏幕断电重启。
通过串口发送指令复位,无需断电也可重启复位串口屏。
此指令对VP编辑软件无效。

14. 通讯指令返回值介绍1

条件

只有当系统变量bkcmd为非0的时候才会返回指令执行成功或者失败数据。

格式

返回指令格式为 命令码(1字节)+参数(长度随命令码而不同)+结束符(2字节,\r\n)

数据

所有指令名以及参数全部16进制数据,非ASCII数据,便于软件解析。

15. 通讯指令返回值介绍2

命令码

含义

格式

参数说明

0x00

指令执行结果

执行结果代码
+返回数据
+结束符(\r\n)

执行结果代码:1字节
0x00 指令执行成功
0x01 命令码无效(指令第一个字符串无效)
0x02 指令参数1无效(指令第二个字符串无效)
0x03 指令参数2无效(指令第三个字符串无效)
0x04 指令参数3无效(指令第四个字符串无效)
0x05 指令参数4无效(指令第五个字符串无效)
0x06 指令参数5无效(指令第六个字符串无效)
0x07 指令参数个数错误
0x08 串口接收超时

说明:
命令执行结果返回值,主要用于客户取得串口屏控件的属性值,响应客户发送的命令,如果客户发送的指令有错,例如命令码拼写错误,属性名称拼写错误,属性名称拼写错误等,造成串口屏不能解析,将返回不同的错误码,方便客户查错。
只有当系统变量bkcmd为非0的时候才会返回指令执行成功或者失败数据。
这个命令提供了一种客户的调试命令的方式,大部分情况下,在调试完毕后,都会把系统变量bkcmd置0,不会收到此命令。
举例:如果客户发送指令的命令码拼写错误,返回:“00010d0a”。解释:从左到右,00 表示返回的命令码,01表示命令码无效,0d表示 \r,0a表示 \n。

0x01

整数返回

0x01+4字节整数+结束符

4字节整数:4字节小端模式存储,低字节在前

0x02

小数返回

0x02+4字节小数+结束符

4字节小数:4字节小端模式存储,低字节在前

0x03

字符串返回

0x03+字符串+结束符

字符串:GBK编码

返回结果包括客户发起的命令执行情况和需要返回的数据。执行情况即执行结果,需要返回的数据主要是取串口屏控件属性的值。值的类型为整数,小数,字符串。
举例:获取按钮1的x坐标。发送指令“wget
button1 x\r\n”,返回为:“01880000000d0a”
解释:01 表示返回值为整数;88000000表示位buttton1的 x坐标,低字节在前的格式;0D0A是命令结束符。
如果系统变量bkcmd没有设置为0,这个指令会接收到两个返回指令,“00000d0a”,和“01880000000d0a”,第一个指令表示命令执行成功,第二个指令是用户需要的结果。如果系统变量bkcmd设置为0,则只返回第二个指令(默认不返回执行成功或失败)。