QRCode二维码在STM32等MCU中的实现

时间:2015-03-26 11:44:01   收藏:0   阅读:4132

一下首先对二维码知识做个简单介绍:

1、版本总共40个版本 21*21起始,之后每个版本增加4个方块

2、寻位图 7*7 5*5 3*3 方块 1:1:3:1:1
3、分隔符在寻位图周围 都位浅色
4、低位图 第6行,第6列 首位都是深色
5、校正图 5*5 3*3 1*1 版本1没有 其他具体位置还未知?????
6、空白区 围绕周围的空白边缘
7、多种编码模式A数字模式10位表示3个字符
               B字母数字模式11位表示2个字符
               C 8位字模式 一个字符8位
               D日本汉字模式 每个双字节字符用11位表示
               E混合模式。。。。

数据编码:

ECI模式编码

输入数据变成位流
缺省模式:位流开头为第一模式的指示符
非缺省模式:ECI标头+一个或多个不同模式段(ECI标头:ECI模式指示符4位+ECI指定符8或16或24位),由ECI模式指示符最高位开始,指定符最低位结束
位流的其余部分第一段组成:模式指示符(4位)+字符计数指示符+数据位流 (每个模式段以模式指示符最高开始,数据流最低位结束)

字母数字模式编码
每2个字符11位表示,最后剩余1个字符6位表示
第1位*45+第2位结果转换为11位二进制
模式表示符(0010)+计数指示符(版本6及以下为9位)+将数据连接起来+终止符(0000,不够可以切短或省略)
所有得到的数据位流都将按8位分配到一个码字,如果最后一个不足8位在最后补零,(高位在前,低位在后)然后根据板号交替的填充
11101100和00010001(目的把剩余空间填满,具体填多少个根据版本容量和纠错等级查表剩余的数量来确定)有些版本容量不能被8整除
在最后需填写补零

格式信息:15位  bit0~1:纠错等级  bit2~4:掩模参考图行  bit5~bit14:按附录C的方法计算10位纠错数据 
 将上述得到的15位数据与101010000010010异或(相同位0,不同为1)得到的数据为图形符号上面的数据。

版本信息:6位数据位(表示7~40版本号)+12位纠错位(通过BCH(18,6)计算出来)(1~6不包含版本信息,7~40才包含包含版本信息)版本信息不进行掩模处理,
          本项目用不到这么高的版本先不做深入学习
结构链接:RQ码可以将16个不同的图形按一定顺序链接起来。扫描的时候不一定按顺序扫描,能自动按顺序排列。项目用不到暂不深入学习。

符号印制:尺寸可以根据实际调整,方块必须为矩形,外围空白区域为大于4倍矩阵宽度

译码:暂不介绍

二、C源码部分,暂不介绍,技术交流Q1732158020

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!