GM65二维码识别模块+命令控制

news2024/11/20 9:28:35

简介

MG65 条码识读模块,一款性能优良的扫描引擎,不仅能够轻松读取各类一维条码,而且可以高速读取二维条码,对线性条形码具有非常高的扫描速率,针对纸质条码及显示屏上的条码,也都能轻松扫描。

一、模块参数及扫描区域分布

二、控制模块

1.对模块的标志位进行读操作

	发送命令格式:
	{Head1} {Types} {Lens} {Address} {Datas} {CRC}
			 Head1 :0x7E 0x00(2 bytes)
			Types	:0x07(1 byte)
			Lens	:0x01(1 byte)
			Address :0x0000~0x00FF(2 bytes),表示要读取的标志位的起始地址。
			Datas	:0x00~0xFF(1 byte),表示要连续读取的标志位的字节数,0x00 表示 256 个字节。
			CRC	:CRC_CCITT 校验值(2 bytes)。
			注:当用户不需要 CRC 校验功能时,可在 CRC 字节处填写 0xAB 0xCD,免校验。
	接收到数据格式:
			1:如果模块成功数据并且成功返回
			{Head2} {Types} {Lens} {Datas} {CRC}
			 Head2 :0x02 0x00
			Types	:0x00(读成功)
			Lens	:表示上传的 Datas 的字节个数,0x00 表示 256 个
			Datas	:0x00~0xFF,表示读上来的数据
			CRC   : CRC_CCITT 校 验 值 。 
			注:当用户不需要 CRC 校验功能时,可在 CRC 字节处填写 0xAB 0xCD,免校验。
			2: 下发 CRC 校验失败,无回应命令
			3:未知命令应答,无回应命令

代码如下(示例):

unsigned int crc_cal_by_bit(unsigned char* ptr, unsigned int len)
{
	unsigned int crc = 0;
	while(len-- != 0)
	{
		for(unsigned char i = 0x80; i != 0; i /= 2)
		{
			crc *= 2;
			if((crc&0x10000) !=0) //上一位 CRC 乘 2 后,若首位是 1,则除以 0x11021
			crc ^= 0x11021;
			if((*ptr&i) != 0) //如果本位是 1,那么 CRC = 上一位的 CRC + 本位/CRC_CCITT
			crc ^= 0x1021;
		}
		ptr++;
	}
	return crc;
}

2.对模块标志位进行写操作

	发送命令格式:
	{Head1} {Types} {Lens} {Address} {Datas} {CRC}
			 Head1 :0x7E 0x00(2 bytes)
			Types	:0x08(1 byte)
			Lens	:0x00~0xFF(1 byte),表示该命令中 Datas 字段的字节数,同时也表示要进行连续写操作的次数,而 0x00 表示有 256 个字节
			Address :0x0000~0xFFFF(2 bytes),表示要写入的标志位的起始地址
			Datas	:0x00~0xFF(1~256 bytes),表示写入标志位的数据
			CRC	:CRC_CCITT 校验值(2 bytes)。
			注:当用户不需要 CRC 校验功能时,可在 CRC 字节处填写 0xAB 0xCD,免校验。
	返回数据格式:
			1:写标志位成功
				{Head2} {Types} {Lens} {Datas} {CRC}
				 Head2 :0x02 0x00
				Types	:0x00(写成功)
				Lens	:0x01
				Datas	:0x00
				CRC	:CRC_CCITT  
			2:下发 CRC 校验失败,无回应命令
			3:未知命令应答,无回应命令
	示例:
			向地址为 0x000A 的标志位写入 0x3E
			1: 设置成功
				输入:0x7E 0x00 0x08 0x01 0x00 0x0A 0x3E 0x4C 0xCF
				返回:0x02 0x00 0x00 0x01 0x00 0x33 0x31
			2: 下发的 CRC 错误
				输入:0x7E 0x00 0x08 0x01 0x00 0x0A 0x3E 0x11 0x22
				返回:无
			3: 当发送的指令长度不够或发送 0x7e 0x00 后等待时间超过 400ms 时,当成未知命令处理
				输入:0x7E 0x00 0x08 0x01 0x00 0x0A 0x3E
				返回:无

标志位保存到 EEPROM 指令

若要将设备标志位的内容保存到外挂的 EERPOM 中则需要发送保存命令。
	   数据发送命令格式:
			{Head1} {Types} {Lens} {Address} {Datas} {CRC}
			 Head1 :0x7E 0x00
			Types	:0x09
			Lens	:0x01
			Address :0x0000
			Datas	:0x00
			CRC	:CRC_CCITT 校验值(0xDE 0xC8)
	  接收数据格式:
			1:保存成功
				{Head2} {Types} {Lens} {Datas} {CRC}
				 Head2 :0x02 0x00
				Types	:0x00(写成功)
				Lens	:0x01
				Datas	:0x00
				CRC	:CRC_CCITT 校验值(0x33 0x31)
			2:下发 CRC 校验失败,无回应命令
			3:未知命令应答,无回应命令

标志位保存到 EEPROM 指令

部分串口命令示例:
	 1:触发扫描串口指令为:7E 00 08 01 00 02 01 AB CD;识读模块收到触发指令后,会先输出七个字节的回应信息并同步启动扫描(回应信息内容:02 00 00 01 00 33 31)
	2:设置模块为命令触发模式,照明灯常亮,普通瞄准,启动静音,开启解码成功LED提示
		发送格式:7E 00 08 01 00 00 99 AB CD    
		接收成功后返回: 02 00 01 00 33 31
	3:设置模块为感应模式,照明灯关闭,瞄准常亮,关闭静音,关闭解码成功LED提示
		发送格式:7E 00 08 01 00 00 63 AB CD    
		接收成功后返回: 02 00 01 00 33 31
	4:从标志位0X0002中读取数据,判断是否输出解码状态提示符
		发送格式:7E 00 07 01 00 02 01 AB CD
		接收成功后返回;02 00 00 01 40 AB CD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/897896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生】kubernetes应用程序包管理工具Helm

Helm 什么是 Helm 安装 Helm 重要概念 使用 Helm 1 简介 官网地址: Helm Helm是一个Kubernetes应用程序包管理工具,它允许你轻松管理和部署Kubernetes应用程序。Helm通过使用称为Charts的预定义模板来简化Kubernetes应用程序的部署和管理。Chart包含了一组Ku…

YOLOv5算法改进(2)— 添加SE注意力机制

前言:Hello大家好,我是小哥谈。注意力机制是近年来深度学习领域内的研究热点,可以帮助模型更好地关注重要的特征,从而提高模型的性能。注意力机制可被应用于模型的不同层级,以便更好地捕捉图像中的细节和特征&#xff…

LeetCode_动态规划_困难_1388.3n 块披萨

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一个披萨,它由 3n 块不同大小的部分组成,现在你和你的朋友们需要按照如下规则来分披萨: 你挑选任意一块披萨。Alice 将会挑选你所选择的披萨逆时针方向的下一块披萨。…

使用metasploit(MSF)对windows的ms17-010漏洞进行利用

主机发现 Ping扫描-禁用端口扫描 nmap -sn 192.168.1.0/24 ─# nmap -sn 192.168.1.0/24 Starting Nmap 7.93 ( https://nmap.org ) at 2023-08-14 10:00 EDT Nmap scan report for 192.168.1.1 Host is up (0.0053s latency). MAC Address: FC:BC:D1:C7:2F:A8 (Huawei Te…

SystemVerilog interface使用说明

1. Interface概念 System Verilog中引入了接口定义,接口与module 等价的定义,是要在其他的接口、module中直接定义,不能写在块语句中,跟class是不同的。接口是将一组线捆绑起来,可以将接口传递给module。 2. 接口的优…

Mysql性能优化:什么是索引下推?

导读 索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。 在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎…

同一个区域多景影像使用同一个拉伸色带显示

问题描述 现需要对11景某一个区域的NDVI数据进行出图,且需要使用同一个拉伸的色带,但是拉伸色带的间断值是根据影像的直方图确定的,意味着11景影像会有11个不同的拉伸色带,不符合需求。 解决方法 目前想到的解决方法就是将11景…

稚晖君人形机器人问世:大模型加持,会自己换胳膊,要上生产线造车

从零开始,不到半年就造出人形机器人,还自带软硬件体系。 大模型技术的新一波浪潮:具身智能,已经有了重要进展。 刚刚,稚晖君的创业公司「智元机器人」开了自己的第一场发布会。 以「天才少年」身份加入华为的稚晖君(彭志辉)于去年底宣布离职创业,人们都在关注他在机器…

类的访问限定符,实例化,对象存储方式,this指针

目录 类的定义 类的两种定义方式: 访问限定符 类的实例化 类对象的存储方式 this指针 C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如: 之前在数据结构初阶中,用C语…

c++11 标准模板(STL)(std::basic_stringbuf)(七)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::allocator<CharT> > class basic_stringbuf : public std::basic_streambuf<CharT, Traits> std::basic_stringbu…

SRE方法论之服务质量目标

为了量化客户对服务可靠性的期望&#xff0c;找到客户对可靠性满意的点&#xff0c;我们需要制定针对用户的服务质量目标&#xff0c;并且努力去达到这个质量目标。在这个过程中&#xff0c;我们需要定义一些服务质量指标&#xff08;SLI&#xff09;、服务质量目标&#xff08…

上半年巴比食品增收不增利,下半年失速的团餐业务能否“复苏”?

随着生活节奏逐渐加快&#xff0c;“宅经济”和“懒人经济”快速融合&#xff0c;人们对进餐便利性的要求逐渐提高&#xff0c;更适用于居家消费的食品应运而生&#xff0c;这其中速冻面点既便于烹饪&#xff0c;又方便快捷&#xff0c;因此其率先出圈获得了消费者青睐&#xf…

SparkSQL源码分析系列03-Antlr4分析测试

SparkSQL主要通过Antlr4定义SQL的语法规则&#xff0c;完成SQL词法&#xff0c;语法解析&#xff0c;最后将SQL转化为抽象语法树。所以有必要先了解下Antlr4的工作流程。 ANTLR4是什么&#xff1f; ANTLR 是 ANother Tool for Language Recognition 的缩写&#xff0c;官网&a…

Python:逢七拍腿游戏

场景模拟&#xff1a; 通过在 for 循环中使用 continue 语句实现计算拍腿次数&#xff0c;即计算从1到100&#xff08;不包括100&#xff09;&#xff0c;一共有多少个尾数为7或7的倍数这样的游戏&#xff0c;代码如下&#xff1a; total 99 # 记…

解读李子园2023上半年财报:营收净利双增,未来持续聚焦大单品?

时至今日&#xff0c;饮料界已经分化出了诸多新品类&#xff0c;无糖气泡水、功能饮料、碳酸饮料、茶饮料、含乳饮料等等层出不穷&#xff0c;令人眼花缭乱。这一现象促使全行业产品都在向多样化转变&#xff0c;其中乳制品的结构分化尤为明显。 然而&#xff0c;身处“局中”…

AB跳转轮询:让你的独立站收款智能化

独立站在近两年成为跨境电商的热门布局之一&#xff0c;特别是在亚马逊封号潮后&#xff0c;许多卖家开始转向独立站运营。然而&#xff0c;在迅速发展的同时&#xff0c;也不可避免地出现了一些问题&#xff0c;比如很多卖家的资金经常被不同程度地冻结&#xff0c;好不容易出…

AI问答:JSBridge / WebView 与 Native 通信

一、理解JSBridge JSBridge是一种连接JavaScript和Native代码的桥梁&#xff0c;它提供了一种方法&#xff0c;使得JavaScript可以直接调用Native的代码&#xff0c;同时使得Native的代码也能直接调用JavaScript的方法&#xff0c;从而实现了JavaScript和Native之间的相互调用和…

GNN学习笔记

GNN b站课程跳转------->>>>> 【不愧是公认最好的【图神经网络GNN/GCN教程】&#xff0c;从基础到进阶再到实战&#xff0c;一个合集全部到位&#xff01;-人工智能/神经网络/图神经网络/深度学习。】 https://www.bilibili.com/video/BV1184y1x71H/?share_so…

【C#】条码管理操作手册

前言&#xff1a;本文档为条码管理系统操作指南&#xff0c;介绍功能使用、参数配置、资源链接&#xff0c;以及异常的解决等。思维导图如下&#xff1a; 一、思维导图 二、功能操作–条码打印&#xff08;客户端&#xff09; 2.1 参数设置 功能介绍&#xff1a;二维码图片样…

ELF文件格式分析(一)

目录 一、ELF 格式介绍二、ELF组成部分2.1) ELF Header2.2) Program Headers2.3&#xff09;Section Headers Table2.3.2&#xff09; Section 此篇文章介绍了ELF文件由哪些部分组成&#xff0c;他们的功能是什么&#xff0c;并在文章末尾给出了一份ELF文件解析的参考资料。 一…