卡米拉 发表于 2020-12-4 17:57:54

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

本帖最后由 卡米拉 于 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虚拟屏运行演示视频
一、适用范围
本文档适合大彩物联型、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+12) 校验宽度:2个字节,即CRC16,高位前,低位后。3) 预装载值:这是算法开始时,初始化预置值 = 0xFFFF(16进制表示)

四、参考资料
1. 《LUA 脚本API V1.4》可通过以下链接下载物联型开发包获取:http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html2. 《LUA基础学习》可通过以下链接下载物联型开发包获取:http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html3. 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-1W系列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




页: [1]
查看完整版本: 大彩串口屏Lua应用-CRC16校验