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

Posted 大彩科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大彩串口屏Lua应用-CRC16校验相关的知识,希望对你有一定的参考价值。

↑↑↑我们获得更多精彩内容!


虚拟屏运行演示视频


一、适用范围


本文档适合大彩物联型、M系列、F系列(固件版本 >= V4.2.401.0)的串口屏产品使用。



二、开发环境版本


1. VisualTFT软件版本:V3.0.1.1111及以上的版本。

版本查看:

1) 打开VisualTFT软件启动页面如图2-1软件版本,右上角会显示的软件版本号;

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

图2-1软件版本


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

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

图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所示;

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

5-1  W系列7寸串口屏


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


5.1.2 软件平台

使用大彩自主研发的上位机软件VisualTFT配置工程,登录http://www.gz-dc.com/下载。如图5-2所示;

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

图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所示:

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

图5-3 画面配置


2. LUA脚本编辑

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


程序清单1 CRC16 代码

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

大彩串口屏Lua应用-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盘重新上电即可。


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

图 5-4 编译成功

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

图 5-5 拷贝



六、附录


1. C语言CRC算法参考

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

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


2. DEMO下载链接:

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


緮置本段内容 ¢It5ccMqkwrB₵,打开手机淘宝立即抢购!



欢迎联系我司销售咨询




●编辑:何思敏



更多大彩串口屏资讯

官网:www.gz-dc.com

淘宝:gz-dc.taobao.com

以上是关于大彩串口屏Lua应用-CRC16校验的主要内容,如果未能解决你的问题,请参考以下文章

串口通讯:请教报文里crc16检验

Python对mudbus协议生成CRC16校验算法

CRC16校验码如何计算

crc16校验的c语言程序

如何计算modbus-rtu的crc校验码

51单片机MODBUS通讯,RTU中的CRC校验