<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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

    文章

    16066

    瀏覽量

    344227
  • 二維碼
    +關注

    關注

    7

    文章

    375

    瀏覽量

    26110
  • decode
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6338

原文標題: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?!   ≡谶x項卡中,點擊“修改”按鈕,刪
    發表于 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
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>