简谈二维码(QRcode)的C语言生成,在单片机平台的实现

您所在的位置:网站首页 编写二维码 简谈二维码(QRcode)的C语言生成,在单片机平台的实现

简谈二维码(QRcode)的C语言生成,在单片机平台的实现

2024-07-10 11:41| 来源: 网络整理| 查看: 265

1)单片机嵌入式二维码(QRcode)生成

2)单片机嵌入式二维码(QRcode)解码

铺垫的话:

        二维码又称QR Code,QR全称Quick Response,越来越多的在生活中出现,作为一种标识,以其廉价简单方便的使用很快普及到生活的角角落落。像衣、食、住、行、社交等等,就连发这篇博客时,登录CSDN也是扫码登录,确实好用。而且这种增长趋势还在持续。

        以往我们所使用到的二维码大多依赖网络平台或者智能终端,今天我们来谈谈在单片机平台上的实现过程。二维码看起来是一堆杂乱无章的点阵集合,实则有自己的编码规则(点击这里)。规则比较复杂有兴趣可以深究,如果仅仅想为了使用而学习请忽略之,并往下看。

        这次我所使用的是一个基于cortex M0的ARM处理器(看成一个单片机),全程C语言实现。单片机性能比较一般但是就效果来看,做二维码生成已经绰绰有余,开始正题。

需要准备的材料有:

(1)C语言生成二维码的原始代码(点击这里下载)//资源下载多了,下载所需积分就自动多了,扫码加下面QQ群也可在群文件下载。

(2)编译器和调试工具

(3)单片机平台一个(任意单片机)

(4)LCD12864显示器一个(其他显示器也行,大点的)

代码移植步骤:

(1)把二维码原始代码添加到你的工程文件中,不管什么单片机,直接添加不做任何修改。如下:

(2)打开二维码原始代码找到QR_Encode.c文件,并找到在此文件中找到 BOOL EncodeData(char *lpsSource) 函数,这个函数就是生成二维码的核心函数,用法也很简单,只需把你需要转换的字符作为参数传入即可。如 EncodeData("http://www.csdn.net/")。

这时二维码的转换结果,已经保存在全局变量 二维数组 m_byModuleData[MAX_MODULESIZE][MAX_MODULESIZE] 中,这个二维数组中保存的都是0、1比特值(有点像单色BMP位图),需要注意的是,这个二维数组的一个字节代表二维码的一个点,0代表二维码的空白点,1代表二维码的黑点了。现在你需要做的就是把这些空白点和黑点通过LCD显示屏显示出来,最终就会得到你要的二维码。

(3)至于LCD显示部分,能看这篇文章的小伙伴应该很熟悉了,右侧扫码logo是我加上去的。

over 大功告成,讲的比较糙,但是应该能用的上。有问题或者建议欢迎留言或QQ群内咨询,扫码加群:

   

 

 

QQ群1:474917846(已满)  QQ群2:1045875949(已满) QQ群3:832979557(未满)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3