Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
解决OLED的二维码显示错误问题
OLED
DISP
二维码
让黑色背景的OLED正确显示二维码内容。
为了方便开发者进行二次开发,Air系列模块提供了disp接口,开发者可以使用它实现LCD/OLED屏幕的文字、图片、二维码等内容的显示。 但是由于OLED背景是黑色的,所以可能导致二维码显示出现问题,无法扫码: ![](/static/editormd/php/../uploads/5_23893.jpeg) 看起来这个二维码的确有一点违和感。那么正确的二维码是什么样子的呢?我们来观察一下: > ![](/static/editormd/php/../uploads/5_25147.png) 正确的二维码,四角是黑色方框,内是黑色的实心正方形,类似“回”字。所以扫码OLED的输出存在问题。 那么如何解决这个问题呢?把“背景”弄成白色: ![](/static/editormd/php/../uploads/5_90352.jpeg) 如图所示,背景弄成白色以后,二维码的显示也就正常了,但是这样看起来很LOW,没有OLED的那种特殊的美感,而且耗电量也会增加(OLED原理是这样的:每一个像素,都是一个发光二极管,发光时工作,不发光时则完全不耗电。所以显示的面积越大,耗电量越多)。 不过别急,还有一个方案可供选择,那就是只把二维码部分的背景色涂黑即可。先模拟一下,p个图看看效果怎么样: ![](/static/editormd/php/../uploads/5_13228.jpeg) 貌似还不错,很高大上,而且符合消费者日常的扫码习惯(二维码外,有一个“白边”衬托)。那么如何编码实现呢? 实际并不复杂,我们来分步解说。首先要理解它的工作原理: ![](/static/editormd/php/../uploads/5_74861.png) 如图所示,黑色背景上绘制一个白色方框,白色方框上边再绘制一个二维码,然后刷新显示即可。 示例代码: ```lua module(..., package.seeall) require "mono_std_spi_ssd1306" --LCD分辨率的宽度和高度(单位是像素) WIDTH, HEIGHT = disp.getlcdinfo() -- qrencode.encode(string) 创建二维码信息 -- @param string 二维码字符串 -- @return width 生成的二维码信息宽度 -- @return data 生成的二维码数据 -- @usage local width, data = qrencode.encode("http://www.openluat.com") local width, data = qrencode.encode('http://www.openluat.com') -- disp.putqrcode(data, width, display_width, x, y) 显示二维码 -- @param data 从qrencode.encode返回的二维码数据 -- @param width 二维码数据的实际宽度 -- @param display_width 二维码实际显示宽度,实际显示宽度开根号需要是整数 -- @param x 二维码显示起始坐标x -- @param y 二维码显示起始坐标y --- 二维码显示函数 local function appQRCode() disp.setbkcolor(0) disp.setcolor(0xffff) disp.clear() disp.puttext('hello', 0, 0) disp.drawrect(64, 0, WIDTH - 1, HEIGHT - 1, 0xffff) local displayWidth = 50 disp.putqrcode(data, width, displayWidth, 64 + (64 - displayWidth) / 2, (HEIGHT - displayWidth) / 2) disp.update() end appQRCode() ``` OK,根据示例代码我们修改一下,看看效果如何: ![](/static/editormd/php/../uploads/5_74624.jpeg) 实际效果图。很不错哦,可以顺利扫码啦。 感谢开发者 超级VIP-帅B大人 冯鸣(235382) 提供图片素材。
发表于 2018-09-22 10:58
阅读 ( 3853 )
分类:
默认分类
4 推荐
打赏
收藏
你可能感兴趣的文章
X、合宙Air模块Luat开发:全网首发,通过iic直接驱动OLED,720Sl开始有显时代
2734 浏览
相关问题
0 条评论
请先
登录
后评论
技术销售Delectate
43 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!