QRCODE
所属分类:图形图象
开发工具:C/C++
文件大小:59KB
下载次数:6
上传日期:2018-06-15 10:36:14
上 传 者:
LevinKai
说明: 二维码编码算法,稍作修改即可移植到各嵌入式相关平台。
(QR Encode , can easyly move to other c platform.)
文件列表:
bitstream.c (4310, 2014-07-24)
bitstream.h (1432, 2014-07-24)
data_type.h (236, 2017-12-11)
mask.c (7274, 2015-08-10)
mask.h (1560, 2014-07-04)
mmask.c (4276, 2015-08-10)
mmask.h (1404, 2014-07-04)
mqrspec.c (7476, 2015-08-20)
mqrspec.h (4774, 2014-07-04)
QR_Encode.c (60262, 2017-12-11)
QR_Encode.h (3783, 2017-12-11)
qrencode.c (21241, 2015-08-22)
qrencode.h (21602, 2015-08-20)
qrinput.c (40683, 2015-08-20)
qrinput.h (3811, 2015-08-20)
qrspec.c (16277, 2015-08-21)
qrspec.h (5832, 2014-07-24)
rscode.c (9508, 2015-08-11)
rscode.h (1468, 2014-07-24)
split.c (8539, 2015-08-20)
split.h (1913, 2014-07-24)
注意:本二维码驱动代码是完整版,无需修改,编解码都有,并适当注释。
使用方法:找到QR_Encode.c文件,并找到在此文件中找到BOOL EncodeData(char *lpsSource)函数,
这个函数就是生成二维码的核心函数,用法也很简单,只需把你需要转换的字符作为参数传入即可。
如 EncodeData("http://www.csdn.net/")。这时二维码的转换结果,已经保存在全局变量二维数组
m_byModuleData[MAX_MODULESIZE][MAX_MODULESIZE]中,这个二维数组中保存的都是0、1比特值
(有点像单色BMP位图),0就代表二维码的空白点,1就代表二维码的黑点了。现在你需要做的就是
把这些空白点和黑点通过LCD显示屏显示出来,最终就会得到你要的二维码。
知识传播才有价值,欢迎大家奔走相告,不保留版权,随便用。
CSDN Blog:http://blog.csdn.net/qq_21475601
---泡在妞里的Feel. 11/03/2017
//////////////////////////////////////修复记录/////////////////////////////////////
(1)增加“data_type.h”文件,此文件包含必要数据类型的定义。__(12/12/2017)
///////////////////////////////////////////////////////////////////////////////////
*********************************Questions and Answers*****************************
Q:二维码生成后的尺寸怎么确定?
A: 在"QR_Encode.h"中,通过设置宏定义MAX_MODULESIZE的值,来确定你需要的二维码的尺寸,
这个宏只是设置最大所能生成二维码的尺寸。当你转换的字符数比较少,而MAX_MODULESIZE
的值较大时,全局数组m_byModuleData[MAX_MODULESIZE][MAX_MODULESIZE]将不会被填满。
我们可以通过查看另一个全局变量m_nSymbleSize的值,来确定转换成的二维码尺寸。
Q: 内存消耗问题?
A:宏定义MAX_MODULESIZE的值,决定了全局数组m_byModuleData[MAX_MODULESIZE][MAX_MODULESIZE]
的大小,假如#define MAX_MODULESIZE 37,那么(37*37)/1024 = 1.34Kb.除次之外还有很多
全局变量和局部变量,所以对单片机来说内存消耗还是不可忽略的。
根据很多朋友反映,表示很想在低性能的单片机(如:传统的51)上移植此套二维码驱动。
在51上不是不能移植,是内存和ROM都太小,当然现在的增强型51已经很棒了。在这里给大家
一个粗略的指标,至少(RAM:4K,Flash:10K),满足这个你可以尝试移植。ARM现在都这么便宜
性能也强,资料也很多,建议用ARM芯片吧。
Q: 二维码怎么放大?
A: 由于生成的二维码是单倍的,在直接显示时,会非常小,不利于扫码。但很遗憾,这套二维码
驱动不支持放大。鉴于此,你可能要自己写一个放大算法。这也很简单,放大二倍就是一个点
变四个点,三倍就是一个点变九个点......在某些显示器(如LCD128***),由于128***是以字节
的形式写数据的,鉴于此,你需要把生成的二维码原始数据,转换成字节的形式。
************************************************************************************
近期下载者:
相关文件:
收藏者: