0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

QR二维码解码流程与使用方法

电子工程师 来源:AT32 MCU 雅特力科技 作者:AT32 MCU 雅特力科技 2022-07-22 10:15 次阅读

概述

二维码、条形码相信大家都非常熟悉了,条码技术已经广泛应用于我们生活当中。微信扫二维码、支付宝二维码付款、商品条形码、超市储物柜条形码等。但是由于二维码复杂度,目前识别二维码的设备还不够丰富。对此本文档利用带浮点运算的、大容量SRAM、高主频芯片AT32F403A,调用雅特力提供的Artery_QR二维码解码库在AT-START-F403A开发板上来实现二维码、CODE128CODE39I25EAN13条码扫描识别。

一维条形码、二维码简介

一维条形码

一维条码是由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分,“空”指对光线反射率较高的部分,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。 一维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,虽然提高信息录入的速度,减少差错率,但是其空间利用率较低,数据容量较小。

二维码

二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。

二维码由于自身设计特点,可包含更多的信息量,编码信息范围更广,并且由于二维码具有一定的校 验功能等。同时还具有对不同行的信息自动识别功能、以及处理图形旋转变化点,二维码译码更加准确,其误码率为千万分之一。下图为QR二维码构造框图。

图1. QR码符号的结构

aaef70e0-08e5-11ed-ba43-dac502259ad0.png

1) 位置探测图形、位置探测图形分隔符:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;这些黑白间隔的矩形块很容易进行图像处理的检测

2) 定位图形:这些小的黑白相间的格子就好像坐标轴,在二维码上定义了网格。 3) 格式信息:表示该二维码的纠错级别,分为L、M、Q、H; 4) 数据区域:使用黑白的二进制网格编码内容。8个格子可以编码一个字节。 5) 版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本每边增加4个模块。 6) 纠错码字:用于修正二维码损坏带来的错误。

QR二维码解码流程

了解了QR二维码的构造,下面我们来了解解码流程,QR二维码的解码流程如下图2所示。 图2. QR码译码步骤

ab17fe5c-08e5-11ed-ba43-dac502259ad0.png

1) 定位并获取符号图像。深色与浅色模块识别为“0”与“1”的阵列。 2) 识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考)。 3) 识读版本信息,确定符号的版本。 4) 用掩模图形参考,从格式信息中得出对编码区的位图进行异或处理消除掩模。 5) 根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。 6) 用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。 7) 根据模式指示符和字符计数指示符将数据码字划分成多个部分。 8) 最后,按照使用的模式译码得出数据字符并输出结果。 二维码的解码流程具体实现的步骤和方法是比较复杂,涉及到了QR二维码的标准规则及相对应的算法,知识点很多,大家感兴趣的话可以自己多去网上查阅资料了解。

QR decode快速使用方法

硬件资源

1) LCD 9341 2) 外接Buzzer(PE15) 3) Arduio 4) AT-START-F403A V1.0实验板 5) USB 6) Sensor BF3901 7) USER key 图3. 硬件资源图

ab398464-08e5-11ed-ba43-dac502259ad0.png

注:1.该demo是基于AT32F403A的硬件条件,若使用者需要在AT32其他型号上使用,请修改相应配置即可。

2.供电部分:使用电源供电,或USB线供电(勿使用Link单独供电)。

QR USB HID keyboard Demo使用

1) 打开QR decode project源程序,编译后下载到实验板。 2) 由于该demo运行占用了169K的SRAM,所以在使用demo前需开启芯片的扩展SRAM功能(扩展为224KB),为了方便用户使用,demo已经在启动文件中开启了此项功能。

ab73acb6-08e5-11ed-ba43-dac502259ad0.png

3) 连接USB线到PC,通过上位机可以识别到该设备:HID Keyboard Device(标准键盘输入模式,无须驱动) 4) 根据LCD显示信息,查看BF3901初始化是否成功,并按下USER key按键,开启QR解码侦测。 5) 将摄像头BF3901对准二维码,LCD显示当前抓取的摄像头图像,此时芯片一直在运算QR解码。 6) 若芯片一直没有解析到二维码,一维码数据,则会一直运行下去,直到解析到数据,如图4所示。蜂鸣器会响一下,并且将解析到数据通过USB传输到PC,如图5所示。 Ps. QR decode默认只侦测二维码,若要侦测全部图码等,需开启宏定义:Detect_all。 图4. LCD显示解析数据

ab7f0e1c-08e5-11ed-ba43-dac502259ad0.png

图5. USB传到PC数据

aba37a5e-08e5-11ed-ba43-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343585
  • 二维码
    +关注

    关注

    7

    文章

    371

    浏览量

    26082
  • decode
    +关注

    关注

    0

    文章

    2

    浏览量

    6331

原文标题:AT32讲堂015 | AT32 MCU实现QR Decode的应用程序

文章出处:【微信号:AT32 MCU 雅特力科技,微信公众号:AT32 MCU 雅特力科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    二维码的算法?

    想用51做一个能将简单数字生成二维码图片在LED彩屏显示。问一下二维码的算法?51单片机能处理吗?请教高手了。
    发表于 03-30 20:14

    二维码识别

    `利用笔记本电脑的摄像头采集二维码图像并识别,显示二维码的信息!下载了labview视觉与运动模块的可以下来看看!里面有2张二维码,用二维码生成器做的(百度应用),用手机拍
    发表于 08-27 16:52

    二维码

    `想通过labview与QR相结合产生二维码,有没有做过的,分享分享经验啦`
    发表于 05-30 17:04

    基于STM32的二维码识别源码+二维码解码库lib

    该设计基于STM32F429+OV5642实现二维码识别功能。解码库被打包成lib了。
    发表于 12-27 10:57

    QR二维码识别

    QR二维码识别
    发表于 11-11 14:31

    求 data matrix 二维码 制作的方式

    有没有人手头有二维码 data matrix 制作的源代码,参考下,我这边做了几个QR的,但是不满足目前的需求,需要制作二维码 data matrix 格式d
    发表于 03-29 10:33

    基于STM32的二维码解码软件源码

    基于STM32的二维码解码源码
    发表于 04-28 17:41

    AN0006—AT32二维码解码(QR decode)和USB虚拟串口

    本帖最后由 贪玩 于 2022-2-16 21:45 编辑 AN0006—AT32二维码解码(QR decode)和USB虚拟串口AT32F403xxAT32F407xx
    发表于 08-30 19:52

    二维码软件中制作Dot Code二维码的步骤

      在二维码软件中,点击软件左侧的“二维码”按钮,在画布上绘制二维码样式,双击二维码,在图形属性-条码选项卡中,设置条码类型为Dot Code。    在选项卡中,点击“修改”按钮,删
    发表于 12-02 15:45

    二维码是什么

    二维码又称QR Code,QR全称Quick Response,越来越多的在生活中出现,作为一种标识,以其廉价简单方便的使用很快普及到生活的角角落落。像衣、食、住、行、社交等等,就连发这篇博客时,登录CSDN也是扫
    发表于 07-14 07:58

    HarmonyOS教程—基于AI的生成能力,实现二维码生成与扫功能

    ,常用的二维码有中英文二维码,不同颜色二维码和带有logo图标的二维码。生成中英文二维码先通过IBarcodeDetector类生成
    发表于 08-30 14:01

    如何识别单片机嵌入式二维码解码

    1)单片机嵌入式二维码(QRcode)生成2)单片机嵌入式二维码(QRcode)解码在我另一篇博客关于 “嵌入式二维码生成” 的博客里,经常会有小伙伴咨询关于单片机上做
    发表于 12-20 07:16

    STM32 单片机字符串生成二维码显示相关资料分享

    1.下载QRcode源码,添加到工程文件中,添加路径2.在LCD驱动C文件中①添加头文件:#include "QR_Encode.h,②显示二维码函数LCD_DrawQrcode_fun
    发表于 01-27 07:32

    单片机显示二维码的原理及实现

    单片机显示二维码的原理及实现一、二维码是什么?二维码又称二维条码,常见的二维码QR Code,
    发表于 02-23 06:38

    OpenHarmony应用实现二维码识别

    ,则弹窗报错。 如果选择图片成功,则调用二维码解码函数parseImageQRCode完成对图片二维码的识别。 如果识别二维码成功,则弹窗展示二维码
    发表于 08-23 17:00