logo资料库

GM65二维码识别模块设置.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
在使用 GM65 GM66 模块时,用户可从主机发送串口指令对识读模块进行设置。出厂时模块默认为 USB 接口, 可以通过扫描以下二维码进行设置,将输出接口改为串口输出 串口输出 扫描过后,模块的串口通讯参数:波特率 9600bps,无校验,8 位数据位,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)。计算的范围:Types、Lens、Address、Datas。 计算的方法为 CRC_CCITT,特征多项式:X16+X12+X5+1,多项式系数为 0x1021, 初始值为全 0,对于单个字节来说最高位先计算,不需要取反直接输出。 注:当用户不需要 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 校 验 值 。计算的范围:Types、Lens、Datas。计算的方法为 CRC_CCITT, 特征多项式:X16+X12+X5+1,多项式系数为 0x1021,初 始值为全 0,对于单个字节来说最高位先计算,不需要取反直接输出。 注:当用户不需要 CRC 校验功能时,可在 CRC 字节处填写 0xAB 0xCD,免校验。 2: 下发 CRC 校验失败 无回应命令 3:未知命令应答 无回应命令
示例:(供参考) CRC C 参考代码: 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; } 注:当用户不需要 CRC 校验功能时,可在 CRC 字节处填写 0xAB 0xCD,免校验。 示例: 对标志位中地址为 0x000A 的 1 个地址进行读操作 1:读成功并返回数据,返回的数据为 0x3E 输入:0x7E 0x00 0x07 0x01 0x00 0x0A 0x01 0xEE 0x8A 返回:0x02 0x00 0x00 0x01 0x3E 0xE4 0xAC 2:下发的 CRC 错误 输入:0x7E 0x00 0x07 0x01 0x00 0x0A 0x01 0x11 0x22 返回:无 3:当发送的指令长度不够或发送 0x7e 0x00 后等待时间超过 400ms 时,当成未知命令处理 输入:0x7E 0x00 0x07 0x01 0x00 0x0A 0x01 返回:无 对模块标志位进行写操作: 发送命令格式: {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)。计算的范围:Types、Lens、Address、Datas 注:当用户不需要 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:未知命令应答 无回应命令 部分串口命令示例: 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
分享到:
收藏