|
本二維碼&條碼識(shí)別LIB由ALIENTEK提供,方便大家使用.
該二維碼&條碼識(shí)別LIB功能:
1,支持QR二維碼識(shí)別.
2,支持CODE128,CODE39,I25,EAN13等四種編碼方式的條碼識(shí)別.
3,支持UTF8-OEM轉(zhuǎn)換輸出(需要客戶自己提供轉(zhuǎn)換碼表).
本LIB移植步驟:
1,實(shí)現(xiàn)atk_qrdecode.c里面的所有函數(shù).
2,堆棧(Stack_Size)設(shè)置為0X1000或以上.
本LIB使用步驟:
1,調(diào)用atk_qr_init函數(shù),初始化識(shí)別程序,返回值為ATK_QR_OK,則初始化成功.
2,調(diào)用atk_qr_decode函數(shù),給定參數(shù),對(duì)圖像進(jìn)行識(shí)別.
3,如果需要不停的識(shí)別,則重復(fù)第2個(gè)步驟即可.
4,調(diào)用atk_qr_destroy函數(shù),結(jié)束識(shí)別,釋放所有內(nèi)存.結(jié)束識(shí)別.
0.png (52.11 KB, 下載次數(shù): 145)
下載附件
2017-8-16 17:45 上傳
壓縮包里面包含一下pdf資料:
QRCode-編碼解碼標(biāo)準(zhǔn).pdf
二維條碼的編解碼及系統(tǒng)實(shí)現(xiàn).pdf
ATK-QR二維碼&條碼識(shí)別庫(kù)使用說(shuō)明(探索者F407版)_AN1616A.pdf
ATK-QR二維碼&條碼識(shí)別庫(kù)使用說(shuō)明(阿波羅F429版)_AN1616B.pdf
stm32單片機(jī)源程序如下:
- #include "atk_qrdecode.h"
- #include "malloc.h"
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
- //
- //本二維碼&條碼識(shí)別LIB由ALIENTEK提供,方便大家使用.
- //該二維碼&條碼識(shí)別LIB功能:
- //1,支持QR二維碼識(shí)別.
- //2,支持CODE128,CODE39,I25,EAN13等四種編碼方式的條碼識(shí)別.
- //3,支持UTF8-OEM轉(zhuǎn)換輸出(需要客戶自己提供轉(zhuǎn)換碼表).
- //當(dāng)需要支持UTF82OEM轉(zhuǎn)換輸出的時(shí)候:
- //1,將ATK_QR_UTF82OEM_SUPPORT宏的值改為1(默認(rèn)是1)
- //2,實(shí)現(xiàn)atk_qr_convert函數(shù).該函數(shù)將unicode編碼轉(zhuǎn)換為OEM編碼.
- //這樣,輸出結(jié)果,就是OEM編碼的字符串(一般就是GBK編碼),方便在單片機(jī)系統(tǒng)里面顯示.
- //如果不需要支持OEM轉(zhuǎn)換,則:將ATK_QR_UTF82OEM_SUPPORT宏的值改為0即可,這樣輸出結(jié)果就是原始編碼
- //的字符串(UTF8/GBK).如果有中文,在單片機(jī)系統(tǒng)里面,可能是無(wú)法直接顯示的,如果是英文,則可以直接顯示.
- //當(dāng)需要支持GBK編碼的二維碼時(shí):將ATK_QR_GBK_SUPPORT宏的值改為1(默認(rèn)是1)即可.
- //本LIB移植步驟:
- //1,實(shí)現(xiàn)atk_qrdecode.c里面的所有函數(shù).
- //2,堆棧(Stack_Size)設(shè)置為0X1000或以上.
- //本LIB使用步驟:
- //1,調(diào)用atk_qr_init函數(shù),初始化識(shí)別程序,返回值為ATK_QR_OK,則初始化成功.
- //2,調(diào)用atk_qr_decode函數(shù),給定參數(shù),對(duì)圖像進(jìn)行識(shí)別.
- //3,如果需要不停的識(shí)別,則重復(fù)第2個(gè)步驟即可.
- //4,調(diào)用atk_qr_destroy函數(shù),結(jié)束識(shí)別,釋放所有內(nèi)存.結(jié)束識(shí)別.
- //u8 atk_qr_decode(u16 bmp_width,u16 bmp_heigh,u8 *bmp,u8 btype,u8* result)函數(shù)參數(shù)說(shuō)明:
- //img_width,img_heigh:輸入圖像的寬度和高度
- //imgbuf:圖像緩存區(qū)(8位灰度圖像,不是RGB565!!!!)
- //btype:0,識(shí)別二維碼
- // 1,識(shí)別CODE128條碼
- // 2,識(shí)別CODE39條碼
- // 3,識(shí)別I25條碼
- // 4,識(shí)別EAN13條碼
- //result:識(shí)別結(jié)果緩沖區(qū).如果result[0]==0,則說(shuō)明未識(shí)別到任何數(shù)據(jù),否則就是識(shí)別到的數(shù)據(jù)(字符串)
- //返回值:ATK_QR_OK,識(shí)別完成
- // 其他,錯(cuò)誤代碼
- //如果需要對(duì)所有支持的編碼進(jìn)行識(shí)別,則輪流設(shè)置btype為0~4即可實(shí)現(xiàn).
- //版本:V1.4
- //內(nèi)存設(shè)置函數(shù)
- void atk_qr_memset(void *p,u8 c,u32 len)
- {
- mymemset(p,c,len);
- }
- //內(nèi)存申請(qǐng)函數(shù)
- void *atk_qr_malloc(u32 size)
- {
- return mymalloc(SRAMIN,size);
- }
- //內(nèi)存重申請(qǐng)函數(shù)
- void *atk_qr_realloc(void *ptr,u32 size)
- {
- return myrealloc(SRAMIN,ptr,size);
- }
- //內(nèi)存釋放函數(shù)
- void atk_qr_free(void *ptr)
- {
- myfree(SRAMIN,ptr);
- }
- //內(nèi)存復(fù)制函數(shù)
- void atk_qr_memcpy(void *des,void *src,u32 n)
- {
- mymemcpy((u8*)des,(u8*)src,n);
- }
- //如果使能了UTF2OEM支持,則需要實(shí)現(xiàn)將UTF8轉(zhuǎn)出的UNICODE轉(zhuǎn)碼成OEM
- #if ATK_QR_UTF82OEM_SUPPORT
- #include "ff.h"
- //將UNICODE編碼轉(zhuǎn)換成OEM編碼
- //unicode:UNICODE編碼的字符內(nèi)碼
- //返回值:OEM編碼方式的字符內(nèi)碼
- u16 atk_qr_convert(u16 unicode)
- {
- return ff_convert(unicode,0);
- }
- #endif
復(fù)制代碼
文件夾下包含4個(gè)源碼:
(寄存器版,適合探索者F407開發(fā)板)擴(kuò)展實(shí)驗(yàn)SE01 ATK-QR二維碼、條形碼識(shí)別實(shí)驗(yàn).rar
(標(biāo)準(zhǔn)庫(kù)版,適合探索者F407開發(fā)板)擴(kuò)展實(shí)驗(yàn)SE01 ATK-QR二維碼、條形碼識(shí)別實(shí)驗(yàn).rar
(寄存器版,適合阿波羅F429開發(fā)板)擴(kuò)展實(shí)驗(yàn)SE01 ATK-QR二維碼、條形碼識(shí)別實(shí)驗(yàn).rar
(HAL庫(kù)版,適合阿波羅F429開發(fā)板)擴(kuò)展實(shí)驗(yàn)SE01 ATK-QR二維碼、條形碼識(shí)別實(shí)驗(yàn).rar
(寄存器版,適合阿波羅F767開發(fā)板)擴(kuò)展實(shí)驗(yàn)SE01 ATK-QR二維碼、條形碼識(shí)別實(shí)驗(yàn).rar
(HAL庫(kù)版,適合阿波羅F767開發(fā)板)擴(kuò)展實(shí)驗(yàn)SE01 ATK-QR二維碼、條形碼識(shí)別實(shí)驗(yàn).rar
所有資料51hei提供下載:
ATK-QR 二維碼與條形碼識(shí)別庫(kù).rar
(13.54 MB, 下載次數(shù): 673)
2017-8-16 17:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|