RGB颜色值与十六进制颜色码转换工具
工程目录下dciot_build\private
文件夹复制到SD卡根目录,重新上电自动更新,大改2min时间,
屏幕赠送一块调试板,PC串口TXD接调试板TXD,RXD接RXD
开发软件都可以到大彩的官网下载,
VSPD新建一对虚拟串口,VisualTFT点击调试 > 运行虚拟串口屏
,分别用虚拟串口屏和串口助手打开两个串口,
小键盘设置加热时间:EE B1 11 00 00 00 2C 11 31 30 30 2E 31 00 FF FC FF FF
小键盘设置加热时间:EE B1 11 00 00 00 2C 11 31 30 30 2E 30 00 FF FC FF FF
小键盘设置保温时间:EE B1 11 00 00 00 2D 11 31 30 30 2E 30 00 FF FC FF FF
小键盘设置冷却时间:EE B1 11 00 00 00 2E 11 31 30 30 2E 30 00 FF FC FF FF
触摸屏启动按键:EE B1 11 00 00 00 18 10 01 01 FF FC FF FF EE B1 11 00 00 00 18 10 01 00 FF FC FF FF
触摸屏复位按键:EE B1 11 00 00 00 17 10 01 01 FF FC FF FF EE B1 11 00 00 00 17 10 01 00 FF FC FF FF
触摸屏模式按键:EE B1 11 00 00 00 19 10 01 01 FF FC FF FF EE B1 11 00 00 00 19 10 01 00 FF FC FF FF
触摸屏设置按键:EE B1 11 00 00 00 16 10 01 01 FF FC FF FF EE B1 11 00 00 00 16 10 01 00 FF FC FF FF
触摸屏确定按键:EE B1 11 00 00 00 3F 10 01 01 FF FC FF FF EE B1 11 00 00 00 3F 10 01 00 FF FC FF FF
if(timer_tick_count - timer_tick_last_update >= 200/*TIME_100MS*/)
{
timer_tick_last_update = timer_tick_count;
UpdateUI();
}
首先查找帧头0xee
,找到帧头后查找帧尾0xfffcffff
,找到之后把中间的数据提取出来就是一条命令,下一步可选择对命令进行CRC校验,帧尾的前两个字节为CRC校验值。
命令的结构,
typedef struct
{
uint8 cmd_head; //帧头
uint8 cmd_type; //命令类型(UPDATE_CONTROL)
uint8 ctrl_msg; //CtrlMsgType-指示消息的类型
uint16 screen_id; //产生消息的画面ID
uint16 control_id; //产生消息的控件ID
uint8 control_type; //控件类型
uint8 param[256]; //可变长度参数,最多256个字节
uint8 cmd_tail[4]; //帧尾
}CTRL_MSG,*PCTRL_MSG;
cmd_type
有下面几种,
#define NOTIFY_TOUCH_PRESS 0X01 //触摸屏按下通知
#define NOTIFY_TOUCH_RELEASE 0X03 //触摸屏松开通知
#define NOTIFY_WRITE_FLASH_OK 0X0C //写FLASH成功
#define NOTIFY_WRITE_FLASH_FAILD 0X0D //写FLASH失败
#define NOTIFY_READ_FLASH_OK 0X0B //读FLASH成功
#define NOTIFY_READ_FLASH_FAILD 0X0F //读FLASH失败
#define NOTIFY_MENU 0X14 //菜单事件通知
#define NOTIFY_TIMER 0X43 //定时器超时通知
#define NOTIFY_CONTROL 0XB1 //控件更新通知
#define NOTIFY_READ_RTC 0XF7 //读取RTC时间
#define NOTIFY_HandShake 0X55 //握手通知
ctrl_msg
有下面几种,只有当cmd_type
是NOTIFY_CONTROL
才有,其它情况没有这个字段,
#define MSG_GET_CURRENT_SCREEN 0X01 //画面ID变化通知
#define MSG_GET_DATA 0X11 //控件数据通知
control_type
有下面几种,只有当ctrl_msg
不是MSG_GET_CURRENT_SCREEN
才有,其它情况没有这个字段,不同control_type
对应的param
长度是不一样的,
enum CtrlType
{
kCtrlUnknown=0x0,
kCtrlButton=0x10, //按钮
kCtrlText, //文本
kCtrlProgress, //进度条
kCtrlSlider, //滑动条
kCtrlMeter, //仪表
kCtrlDropList, //下拉列表
kCtrlAnimation, //动画
kCtrlRTC, //时间显示
kCtrlGraph, //曲线图控件
kCtrlTable, //表格控件
kCtrlMenu, //菜单控件
kCtrlSelector, //选择控件
kCtrlQRCode, //二维码
};
由screen_id
和control_id
可唯一定位一个控件。