先上图

场景是这样的, 这几天给CS系统做一个微信支付的功能,  但是生成的二维码是在前台的电脑上..不可能让用户跑到前台的电脑上去扫描...然后拿出了N年前买的Arduino 做了一个二维码显示器..就可以放在前台的桌子上了.

淘宝有很多种,最便宜的只要十几块................................320*240,能装SD卡,还能触摸..最爽的是直插UNO,直插直插,不用接线..

很简单的程序,通过串口和主机通讯,在屏幕上显示一个二维码...

但是有两个问题,不可能传输图片,图片太大,串口太慢,, 所以把支付地址通过串口发送到板子上,然后找到QRCode(https://github.com/ricmoo/QRCode)这个库,生成二维码..

注意,单片机资源受限,生成更大二维码需要更大的内存,也需要更长的时间,见QRCode文档..有的大的就用不了.

我用的是51*51的分辨率.然后再扩大4倍,也就二百个像素..

见代码.

void loop()
{
//颜色,白色.
int c = 0x0000; if (Serial.available())
{
Serial.println("Start");
LCD_Clear(0xffff);
//串口收到数据,清空屏幕,然后生成二维码.
String strURL = Serial.readString();
Serial.println(strURL);
QRCode qrcode;
//选择二维码类型,这里是9, 两个数字一样
uint8_t qrcodeData[qrcode_getBufferSize()];
char* p = strURL.c_str();
qrcode_initText(&qrcode, qrcodeData, , , p);
Serial.println(qrcode.size);
// 图片放大的倍数, 51*51的分辨率显示出来是什么样??
int kuo = ;

for (uint8_t y = ; y < qrcode.size; y++) {
for (uint8_t x = ; x < qrcode.size; x++) {
int hs = qrcode_getModule(&qrcode, x, y) ? : ;
if (hs == )
{
//放大图片.
unsigned int xk = x * kuo + ;
unsigned int yk = y * kuo+ ;
for (uint8_t k = ; k < kuo; k++)
{
V_line( xk+ k, yk, kuo, c);
}
}
}
}
}
}

注意,这个屏幕是个便宜货,厂家给的DEMO根本驱动不起来,也不提供支持..

我这里有自己改的驱动...

用Arduino制作一个二维码显示器的更多相关文章

  1. 为iOS应用制作一个二维码

    第一步:找到你发布的ios应用的下载链接: 第二步:使用二维码转换器,将下载链接转换成 二维码.http://my.qzone.qq.com/app/100699951.html?via=appcen ...

  2. 二维码合成,将苹果和安卓(ios和android)合成一个二维码,让用户扫描一个二维码就可以分别下载苹果和安卓的应用

    因为公司推广的原因,没有合适的将苹果和安卓(ios和android)合成一个二维码的工具. 因为这个不难,主要是根据浏览器的UA进行判断,所以就自己开发了一个网站 网站名称叫:好推二维码  https ...

  3. 公司开发的APP,如何生成一个二维码,供客户下载使用

    1.其实和简单,因为一般的用户使用扫一扫,大多数都是用微信自带的扫一扫工具 而,微信打开的二维码页面,会自动屏蔽apk文件,所以显然把apk的url生成一个二维码,让用户扫一扫就能直接下载,这样是行不 ...

  4. 一个二维码如何自动识别是安卓(Android)还是苹果(IOS)

    思考问题: 通常,我们开发一个APP,有Android版本.IOS版本. 但是只有一个二维码?怎么办呢? 怎么让IOS用户扫描二维码下载IOS版本,Android用户扫描二维码下载到Android版本 ...

  5. 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码

    详解C#泛型(二)   一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...

  6. 用一个二维码做下载地址,自动区分是 ios 还是 android

    用一个二维码做下载地址,自动区分是 ios 还是 android, 甚至区分 iphone  和 ipad. <html> <head> <meta http-equiv ...

  7. 用lua nginx module搭建一个二维码

    用lua nginx module搭建一个二维码(qr code)生成器 作者 vinoca 發布於 2014年10月31日 如果有VPS,或者开源的路由器,安装一个nginx,添加lua-nginx ...

  8. 安卓app和苹果app共用一个二维码

    应项目要求,现在安卓app和苹果app共用一个二维码,对外提供下载: <html> <head> <meta http-equiv="Content-Type& ...

  9. PHP实现一个二维码同时支持支付宝和微信支付

    实现思路 生成一个二维码,加入要处理的url连接 在用户扫完码后,在对应的脚本中,判断扫码终端,调用相应的支付 若能够扫码之后能唤起相应app,支付宝要用手机网站支付方式,微信要使用jsapi支付方式 ...

随机推荐

  1. 使用java实现阿里云消息队列简单封装

    一.前言 最近公司有使用阿里云消息队列的需求,为了更加方便使用,本人用了几天时间将消息队列封装成api调用方式以方便内部系统的调用,现在已经完成,特此记录其中过程和使用到的相关技术,与君共勉. 现在阿 ...

  2. 2.4 PCI总线的配置

    PCI总线定义了两类配置请求,一个是Type 00h配置请求,另一个是Type 01h配置请求.PCI总线使用这些配置请求访问PCI总线树上的设备配置空间,包括PCI桥和PCI Agent设备的配置空 ...

  3. DAVINCI DM6446 开发攻略——V4L2视频驱动和应用分析

     针对DAVINCI DM6446平台,网络上也有很多网友写了V4L2的驱动,但只是解析Montavista linux-2.6.10 V4L2的原理.结构和函数,深度不够.本文决定把Montavis ...

  4. OpenGL直线点画模式

    程序来自<OpenGL编程指南第七版> #include "stdafx.h" #include <Windows.h>//头文件一定要加上,因为windo ...

  5. freemarker自定义标签报错(七)

    1.错误描述 六月 09, 2014 11:11:09 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  6. 小白学爬虫-在无GUI的CentOS上使用Selenium+Chrome

    爬虫代理IP由芝麻HTTP服务供应商提供各位小伙伴儿的采集日常是不是被JavaScript的各种点击事件折腾的欲仙欲死啊?好不容易找到个Selenium+Chrome可以解决问题! 但是另一个▄█▀█ ...

  7. CF370 D Memory and Scores

    dp题 并运用了前缀和 我看题目提示中有fft 我想了下感觉复杂度不过关还是未解 #include<bits/stdc++.h> using namespace std; typedef ...

  8. java第一个程序——Hello World

    Hello World 如果没有下载jdk以及配置环境变量的萌新请自行百度,教程非常的详细(参考:https://jingyan.baidu.com/article/6dad5075d1dc40a12 ...

  9. Postgresql与Oralce常用用法区别总结

    日期操作 1. 操作当前日期和时间 oracle Select SYSDATE FROM dual; PostgreSQL Select CURRENT_DATE; Select NOW();返回日期 ...

  10. mini-css-extract-plugin 的用法(webpack4)

    今天在使用webpack的extract-text-webpack-plugin插件提取单独打包css文件时,报错,说是这个插件要依赖webpack3的版本. 后面查了一下,webpack4得使用mi ...