广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5322|回复: 0

大彩串口屏Lua应用-CRC16校验

[复制链接]

87

主题

111

帖子

9334

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9334
发表于 2020-12-4 17:57:54 | 显示全部楼层 |阅读模式
本帖最后由 卡米拉 于 2020-12-7 08:36 编辑

http://video.gz-dc.com/%E8%99%9A%E6%8B%9F%E5%B1%8F%E8%BF%90%E8%A1%8C%E6%BC%94%E7%A4%BA%E7%BB%93%E6%9E%9C.mp4
[size=13.3333px]虚拟屏运行演示视频
[size=13.3333px]
一、适用范围
本文档适合大彩物联型、M系列、F系列(固件版本 >= V4.2.401.0)的串口屏产品使用。


二、开发环境版本
1. VisualTFT软件版本:V3.0.1.1111及以上的版本。
版本查看:
1) 打开VisualTFT软件启动页面如图2-1软件版本,右上角会显示的软件版本号;
图2-1软件版本

2) 打开VisualTFT,在软件右下角可以查看软件版本图2-2软件版本,最新版本可登录http://www.gz-dc.com/进行下载。
图2-2软件版本

2. 串口屏硬件版本:物联型固件 >= V3.0.598.0,M系列固件 >= V6.1.199.00,F型固件 >= V4.2.401.0。
版本查看:
1) 查看屏幕背面版本号贴纸;
2) VisualTFT与屏幕联机成功后(大彩协议下),右下角显示的版本号。


三、概述
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,对数据进行多项式计算,并将得到的结果附在帧里面,以保证数据传输的正确性和完整性。一般而言,大彩串口屏在自定义协议中使用CRC校验比较常见,故本文在lua脚本实现CRC校验。

本例程中的CRC算法类型如下:
1) 参数模型:X16+X15+X2+1
2) 校验宽度:2个字节,即CRC16,高位前,低位后。
3) 预装载值:这是算法开始时,初始化预置值 = 0xFFFF(16进制表示)


四、参考资料
1. 《LUA 脚本API V1.4》可通过以下链接下载物联型开发包获取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
2. 《LUA基础学习》可通过以下链接下载物联型开发包获取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
3. LUA脚本初学者可以通过下面链接进行学习。
http://www.runoob.com/lua/lua-arrays.html



五、教程实现
本文主要将以下2点进行说明:
1. 准备工程素材;
2. 配置串口屏工程;

5.1 准备工程素材
5.1.1 准备工程素材
在实现例程前需要作以下3个准备:
1. 硬件平台;
2. 软件平台;
3. UI素材;
该例程使用大彩W系列7寸串口屏DC80480W070_1111_0T为验证开发平台。如图5-1所示;
图5-1  W系列7寸串口屏

其他尺寸、M系列、F系列(固件版本 >= V4.2.401.0)的串口屏均可借鉴此教程。

5.1.2 软件平台
使用大彩自主研发的上位机软件VisualTFT配置工程,登录http://www.gz-dc.com/下载。如图5-2所示;
图5-2下载软件
5.2 配置串口屏工程
用户点击画面依次输入文本数据(10进制输入,16进制显示),点击计算,将输入的数据进行校验并显示出来。本文主要介绍以下2点:
1) 画面配置
2) LUA实现

5.2.1 画面配置
1. 画面配置
在画面ID0中,添加7个文本控件(控件ID1~ID6、ID8)、一个按钮控件(控件ID7),其中控件ID1~ID6是CRC校验的数据,供用户弹出键盘输入;控件ID8为ID1~ID6的校验结果。如图5-3所示:
图5-3 画面配置

2. LUA脚本编辑
本例程中,点击计算,将输入数据(10进制输入,16进制显示)的校验结果显示在文本控件ID8中。代码如程序清单 1所示:

程序清单1 CRC16 代码


核心API函数
1) add_crc16(data, n)
自定义函数,对指定的数组、检验个数进行CRC计算。

  • data:被校验的数组,下标从0开始
  • n:校验的个数


5.3 下载工程
在我司的上层软件Visual TFT中集成了LUA程序的编译器,可以实现在编译工程的同时将LUA脚本程序一起编译,并且将编译后的图片和程序集合在一个名为DCIOT.PKG的文件中。编译后只需要把DCIOT.PKG文件拷贝到U盘中,插入串口屏并重新上电即可将图片和程序下载到屏中。

5.3.1 下载
工程编译成功后在输出窗口会提示编译成功,如所示。编译成功后打开工程目录,找到output文件夹,将文件夹中的DCIOT.PKG文件拷贝到U盘中,如图 5-4和图 5-5所示;接上串口屏重新上电,等到提示烧录工程成功后,拔掉U盘重新上电即可。

图 5-4 编译成功

图 5-5 拷贝


六、附录
1. C语言CRC算法参考

此C语言CRC算法适用于大彩协议,标准MODBUS协议的校验。

2. DEMO下载链接:
http://www.gz-dc.com/uploads/file/20201202/LUA%20CRC-16MODBUS-(X16%20+%20X15%20+%20X2%20+%201).rar




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
销售与技术支持:(020)82186683-601
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-5-21 13:47 , Processed in 0.059830 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表