最近搞了个单片机生成二维码,步骤如下

1.下载QRCode生成的驱动源代码,这个驱动是c语言编写的可以移植到各种c语言写的工程上去,下面附上下载链接:

https://download.csdn.net/download/baidu_39491365/11109832

下载好了后,里面有一个QR Code源码库,还有一个我根据源码写好的示例工程,按照里面说明的硬件搭一下,直接烧录程序就可以生成QR code。

2.接下来是源码的用法

由于我只用到了生成二维码,也不需要解析或者其他什么的,所以源码很多内容对于我来说是用不到的,单是生成二维码只需要源码压缩包里的三个文件,分别是QR_Encode.c,QR_Encode.h,data_type.h,把这三个复制到自己项目的工程底下,然后添加进去,就可以调用里面的函数了。

里面需要用到的函数只有一个 就是:EncodeData("需要转化为二维码的文本内容");//这个函数的意思就是 把文本转化为二维码,转化完成后,它会将转化好的二维码数据保存到m_byModuleData[x][y];这个二维数组中,二维码只由黑白块组成,因此这个数组的内容也就只有0和1,1代表黑块,0代表白块。只需要根据这个二维数组,把黑快和白块在液晶屏或者上位机上显示就可以了!二维数组打印都会吧,for嵌套就完事了,哈哈,so easy。

3.QR_Encode.h里面参数配置

QR_Encode.h里有很多参数可以配置,例如最大容量,最大纠错等等,这些根据你的需要去改就可以了。不知道这些参数是什么意思的话,可以钻研一下下面的博客:https://www.cnblogs.com/jin20000/p/3424966.html。

4.注意事项!!!主要浪费了时间的地方,也是很难解决的地方- =

1)51单片机内存资源问题

如果你采用的是高级的单片机,STM32之类的,这一条稍作参考即可,如果是51,那问题就比较大,51的性能很差,内存很小,直接把上述三个文件复制到工程里并且使用的话,51的内存是不够的,这样是生成不出来二维码的,现象就是,液晶啥也不显示。那么如何解决呢? 编译发现,主要的不足是RAM不足,那么就可以对源文件稍微修改,QR_Encode.c中有很多数组的内容是固定的,们可以在数组前加一个code关键字,把这些固定的内容移入ROM,用这样的方法根据编译结果下面的data=xxx,xdata=xxx,code=xxx慢慢修改,直到RAM和ROM都不溢出为止。如果嫌麻烦,或者改不好,可以直接把我的工程根目录改了的QR_Encode.c,QR_Encode.h考出来,添加到你自己的工程里。

所以STC89C51RC这样的就不要用了,内存一定是不够的,89c51系列的话,就用STC89C516RD+吧,具体区别看下表,反正驱动代码都是一样的,买一块516直接插上就完事了。

2)液晶的选择

成功显示二维码之后,看看会不会出现二维码扫不出来的情况,如果会,很可能就是你的屏幕不是黑白屏幕的,如果你是蓝色底的屏幕,和绿色底的,这个都会影响二维码扫描,因为二维码是黑色吸光,白色反射,你弄个绿色底,自然有问题。如果是彩屏那就好办了,直接打印黑白点就行。

3)参数不当引起二维码无法识别

这个就是要理解好二维码的参数设置,具体参看第3点。

我遇到的就是,最大纠错设置的不对,我设置的空间不足以在程序中存储计算出来的纠错码。因为纠错率越高,代表要加入的纠错码越大,那对应的空间就要设置大了,不然就存不下。因此,提高纠错率是会影响内存的,要注意这里的内存问题,总而言之,设置完了根据编译改~。

最后上一张成功后的图片

如果实在是出不来,不妨根据我给的工程先弄一套硬件出来(很快的,拿个最小系统插上stc89c516rd+,再插上12864,例程里的12864打点代码是并口屏幕,注意不要用串口屏,改一下引脚就行,然后直接烧录代码,一定是可以出来的。先弄出个结果再去做,会容易不少的,哈哈。

51单片机生成二维码相关推荐

  1. 单片机生成二维码 C语言代码

    随着二维码支付的普及,现在对设备端生成二维码的要求越来越多,前些时间做了一些项目,刚好是要在单片机接12864LCD屏生成二维码. 单片机生成二维码的源码,C语言编写,封装成函数,简单易用.本程序需要 ...

  2. 关于Unity调用摄像头扫描二维码与生成二维码的实现方法

    1.常用的生成二维码网址 https://cli.im/ 2.上官网下载二维码插件 http://zxingnet.codeplex.com/ 3.将下载的插件中zxing.unity.dll文件放入 ...

  3. 使用Java生成二维码图片(亲测)

    下面我来分享两种生成二维码图片的方法. 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.g ...

  4. java springMVC生成二维码

    Zxing是Google提供的工具,提供了二维码的生成与解析的方法,现在使用Java利用Zxing生成二维码 1),二维码的生成 将Zxing-core.jar 包加入到classpath下. 我的下 ...

  5. jquery生成二维码图片

    1.插件介绍 jquery.qrcode.min.js插件是jq系列的基于jq,在引入该插件之前要先引入jq.能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生 ...

  6. HTML5 实现扫描识别二维码 生成二维码

    扫描识别二维码 思路 1. 操作摄像头,获取图片.HTML5 WEBRTC的navigator.getUserMedia方法去实时获取摄像头资源.  2. 利用canvas使用相关算法分析图片识别图片 ...

  7. 2021-1-26-java生成二维码

    使用java生成QRCode二维码 需要引入zxing依赖: <!-- google zxing qrcode生成依赖 --> <dependency><groupId& ...

  8. delphi使用TDelphiZXingQRCode生成二维码条形码

    使用TDelphiZXingQRCode控件生成二维码条形码打印到TBitmap位图中,可以把二维码保存到JPG图片中.使用简单,代码如下: 需要的单元: uses Graphics, Jpeg, D ...

  9. iOS中 扫描二维码/生成二维码详解

    最近大家总是问我有没有关于二维码的demo,为了满足大家的需求,特此研究了一番,希望能帮到大家! 指示根视图: ? 1 self.window.rootViewController = [[UINav ...

最新文章

  1. ios 标签 html,ios HTML的标签的过滤
  2. linux单体内核,加载Linux单体内核的笔记
  3. 10个值得关注的优秀CSS框架
  4. 【Elasticsearch】Elasticsearch如何物理删除给定期限的历史数据?
  5. java 简单的webshell_Java Web使用JSPX白名单绕过上传WebShell | kTWO-个人博客
  6. OC正则表达式的使用
  7. php中的require(),PHP中include()与require()的区别说明
  8. pcie标准_24Pin接口再见!华擎推出首款ATX12VO标准的Z490主板
  9. Layui动态修改列名
  10. 信息安全-工控安全需求分析与安全保护工程
  11. 小米手机连接MAC电脑
  12. c语言pow的作用,c语言中pow函数的用法是什么?
  13. 影楼——Lr基础操作PS动作及批处理
  14. python正则表达式(关于提取数字)
  15. TTD 专题 (第一篇):C# 那些短命线程都在干什么?
  16. Spring Security进行登录认证和授权
  17. SimSwap 高保真人脸交换的高效框架 以及 deepfake辨别图片或者视频真假 dalle-mini文字生成图片
  18. 次世代游戏建模学习,带你轻松认识并掌握!零基础小白必备
  19. 大学计算机(计算机文化基础)练习题
  20. Vue中的import from

热门文章

  1. 暗黑破坏神2中的符文系统,一共有多少个符文,可以介绍其中1个符文组合吗?...
  2. Android USB系统(一)
  3. puzzle(1024)帐篷、星之战
  4. 当Androidstudio添加权限后仍然报错java.lang.SecurityException: Permission Denial
  5. 打怪物小游戏,无聊打发时间
  6. 这图怎么画| 相关性热图+柱状图
  7. 计算机关闭自带杀毒,电脑系统自带杀毒软件怎么关闭?两种Windows defender彻底关闭方法(图文)...
  8. Banana Pi BPI-R3 评测:详细信息、功能
  9. 我的世界服务器配置推荐,搭建我的世界服务器教程
  10. 电动汽车的新问题,保险公司赔不起,车主养不起