指令详解

系统寄存器操作

电源控制 (0xFF00)

向寄存器 [FF00] 写入字符串,控制设备运行状态。

进入正常运行状态:

发送:A5 5A 00 09 80 FF 00 4E 4F 52 4D 41 4C
返回:无

读取当前状态:

发送:A5 5A 00 03 82 FF 00
返回:A5 5A 00 09 82 FF 00 4E 4F 52 4D 41 4C   (表示状态正常 "NORMAL")

支持的指令值:

  • REBOOT — 重启设备

  • SUSPEND — 设备进入休眠状态

  • IDLE — 设备进入待机状态

  • NORMAL — 设备进入正常状态

警告

字符匹配大小写。目前只支持 NORMAL 指令,其它指令保留。

屏幕亮度调节 (0xFF01)

向寄存器 [FF01] 写入亮度数值,调节范围为 0-255 级

发送:A5 5A 00 04 80 FF 01 80     (设置亮度为 128)
返回:无

发送:A5 5A 00 03 82 FF 01        (获取当前亮度)
返回:A5 5A 00 04 82 FF 01 80     (当前亮度为 128)

当前显示页面 (0xFF02)

向寄存器 [FF02] 写入指定页面 ID,串口屏自动切换到指定页面。

发送:A5 5A 00 05 80 FF 02 00 01     (跳转到页面 ID=0x0001)
返回:无

发送:A5 5A 00 03 82 FF 02           (获取当前页面)
返回:A5 5A 00 05 82 FF 02 00 01     (当前页面 ID=0x0001)

FLASH 数据读写

往 FLASH 写入数据 (0xFFF0)

通过寄存器 [FFF0] 可以将用户需要掉电保存的数据写入 FLASH 块内,块大小为 128K,地址范围 0~0x1FFFF

帧格式:

帧头 + 数据长度(2字节) + 指令[80] + 寄存器[FFF0] + 起始地址(4字节) + 写入数据

示例: 往地址 [00 01 FF F0] 处写入 01 02 03 04

发送:A5 5A 00 0B 80 FF F0 00 01 FF F0 01 02 03 04
返回:无

备注

一次写入的数据不能大于 1K 字节

从 FLASH 读取数据

发送:A5 5A 00 09 82 FF F0 00 01 FF F0 00 04     (从地址 [00 01 FF F0] 读取 4 字节)
返回:A5 5A 00 07 82 FF F0 01 02 03 04           (返回数据 01 02 03 04)

基本图形绘制指令

线段操作指令

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FFF1H) + (22H) + (Color) + (X1) + (Y1) + ... + (Xn) + (Yn)

示例: 连接点 (50,50) 与点 (100,100)

发送:A5 5A 00 0E 80 FF F1 22 F8 00 00 32 00 32 00 64 00 64

粗线段操作指令

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FFF1H) + (2FH) + (Color) + (线宽) + (X1) + (Y1) + ...

示例: 连接点 (50,50) 与点 (100,100),线宽 5,红色

发送:A5 5A 00 0F 80 FF F1 2F F8 00 05 00 32 00 32 00 64 00 64

实时发送图像数据指令

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FFF1H) + (34H) + (X) + (Y) + (宽W) + (高H)

返回: A5 5A 00 04 82 FF F1 FC 表示准备好

示例: 在 (0,0) 坐标发送宽 480、高 16 的图像数据

发送:A5 5A 00 0C 80 FF F1 34 00 00 00 00 01 E0 00 10

控件属性修改指令

静态图像坐标移动

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FFF2H) + (控件ID) + (X) + (Y)

示例: 将控件 ID=116 (0x0074) 移动到 (100,100)

发送:A5 5A 00 09 80 FF F2 00 74 00 64 00 64

参数显示控件颜色修改

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FFF2H) + (控件ID) + (正常前景色) + (活动前景色) + (正常背景色) + (活动背景色)

示例: 将控件 ID=113 (0x0071) 的正常前景色改为红色

发送:A5 5A 00 07 80 FF F2 00 71 F8 00

矩形控件颜色修改

发送:A5 5A 00 07 80 FF F2 00 01 F8 00    (将 ID=1 的控件颜色改为红色)

定时器控制指令

指令

说明

A5 5A 00 06 80 FF F2 00 64 00

停止定时器

A5 5A 00 06 80 FF F2 00 64 01

启动定时器

控件行为修改

使能控件触摸功能

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FF0CH) + (控件ID)

示例:A5 5A 00 05 80 FF 0C 00 01    (使能 ID=1 的触摸功能)

禁能控件触摸功能

(帧头{A5 5A}) + (长度{2字节}) + (80H) + (FF0DH) + (控件ID)

示例:A5 5A 00 05 80 FF 0D 00 01    (禁能 ID=1 的触摸功能)

显示/隐藏控件

显示:A5 5A 00 05 80 FF F3 00 01    (显示 ID=1 的控件)
隐藏:A5 5A 00 05 80 FF F4 00 01    (隐藏 ID=1 的控件)

画板控件操作指令

画板控件的变量空间总大小为 64K,变量地址范围 0000H-FFFFH

帧格式:

(帧头{A5 5A}) + (长度{2字节}) + (85H) + (FFFFH) + (变量地址) + (控制指令) + (数据包数量) + (数据包0) + ... + (数据包N)

判断条件: 0xFF 绘图操作结束,0xFE 本次操作跳过。

打点控制指令 (0x0001)

数据包格式:(x, y, color)

示例: 画板变量地址 0x000A,在 (50,50) 打红色点

发送:A5 5A 00 0F 85 FF FF 00 0A 00 01 00 01 00 32 00 32 F8 00
清除:A5 5A 00 0A 85 FF FF 00 0A 00 01 00 01 FF

连线操作指令 (0x0002)

数据包格式:(x, y),首个数据包配置颜色 color

矩形操作指令 (0x0003)

数据包格式:(xs, ys, xe, ye, color)

示例: 左上角 (0,0),右下角 (48,48),红色

发送:A5 5A 00 14 85 FF FF 00 0A 00 03 FF FF 00 00 00 00 00 30 00 30 F8 00 FF
清除:A5 5A 00 0A 85 FF FF 00 0A 00 03 00 01 FF

填充矩形操作指令 (0x0004)

数据包格式:(xs, ys, xe, ye, color)

圆形操作指令 (0x0005)

数据包格式:(x, y, r, color)

示例: 圆心 (100,100),半径 32,红色

发送:A5 5A 00 12 85 FF FF 00 0A 00 05 FF FF 00 64 00 64 00 20 F8 00 FF

曲线缩放指令

  • 放大 2 倍: A5 5A 00 03 96 01 00 (指令 0x96,16 位采样,缓冲区 0)

  • 缩小 2 倍: A5 5A 00 03 97 01 00 (指令 0x97,16 位采样,缓冲区 0)

移动焦点

移到上一个焦点:A5 5A 00 05 80 FF 0F A1 FA
移到下一个焦点:A5 5A 00 05 80 FF 0F A1 FB
确认当前焦点:  A5 5A 00 05 80 FF 0F 00 0D
设置焦点:      A5 5A 00 05 80 FF 0E xx xx    (xx xx 为控件 ID)

定时器控制

暂停(ID=0003):A5 5A 00 06 80 FF F2 00 03 00
启动(ID=0004):A5 5A 00 06 80 FF F2 00 04 01