查看: 4696|回复: 11

[原创] [LPC55S69][EINK]篇二:新的一年,教你通过MCU用二维码说Hello 2019

[复制链接]
  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    839

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3986
    最后登录
    2024-4-29
    发表于 2019-1-15 14:53:01 | 显示全部楼层 |阅读模式
    本帖最后由 mgn 于 2019-1-15 15:11 编辑

    LPC55S69 EINK电子墨水屏应用系列 一  https://www.nxpic.org.cn/module/forum/thread-615865-1-2.html

    LPC55S69 EINK电子墨水屏应用系列 二  https://www.nxpic.org.cn/module/forum/thread-615971-1-1.html


    文接上周的《如何在EINK屏幕上显示一颗圣诞树》,小编这次带来“MCU+墨水屏幕”的一个典型应用 - 显示QR二维码。
    如果您对QR二维码的基础知识不是特别了解,这里分享两个链接讲解QR二维码的基础知识

    [硬件]
    硬件还是基于LPCXpresso55S69开发板以及那块淘宝来的1.54寸的墨水屏。
    picture1.jpg
    [软件]
    接下来的部分,小编逐步介绍如何利用MCU软件生成二维码。
    生成二维码的代码我们利用了fukuchi-san的libqrencode开源代码,您直接去http://github.com/fukuchi/libqrencode就可以下载全部分源码,如要商用这套代码则请注意libqrencode的License是LGPL-2.1。
    github_libqrencode.jpg
    基于LPC55S69移植好的工程,小编上传到 http://github.com/Magicoe/LPC5500_DEMOS仓库里了,工程名字是lpc5500_eink1in54_libqrencode。


    ------------------------------------------------  代码移植 --------------------------------------------------------------
    下载的libqrencode代码包里对我们实际有用的文件见下图,从代码包里取出复制到您的工程路径下即可,如果您用的是基于LPC55S69的代码包,相关代码文件在工程目录的middleware\libqrencode中。
    porting_files.jpg

    注意fukuchi同志的代码里并没有config.h这个文件,如果没有config.h里的一些声明编译的时候会提示各种错误,如没有版本号等等,所以小伙伴不用忘记这个config.h代入到工程的编译中去。
    config_h.jpg
    ------------------------------------------------  工程配置 --------------------------------------------------------------
    接下来以KEIL工程为例,介绍下创建好一个编译工程后,对编译器要配置那些地方。
    首先,在KEIL下要勾选”Options->Target”下的 “Use MicroLIB”
    keil_options_cfg.jpg

    在“Options->C/C++(AC6)”中的“Define:” 加入 “HAVE_CONFIG_H”, 以及在“IncludePaths”中添加入libqrencode的代码路径。
    keil_c++config.jpg

    工程配置的最后一步,也是重中之重的一步,通过工程的分散加载文件把堆栈的大小调的尽可能的大一些。原因是libqrencode中用malloc申请了大量heap空间。
    scatterfile.jpg

    ------------------------------------------------  API生成QR二维码 ------------------------------------------------
    在介绍libqrencode生成QR二维码前,大家先要把libqrencode相关的.h文件包含进main.h里或者在合适的地方声明下
    main_include.jpg

    一切就绪后,让我们来认识下libqrencode生成QR二维码相关的API,核心的API只有两个,一个是QRcode_encodeString()和QRcode_free()。如下图代码中的第69行和94行, 我们要生成一组文字的QR二维码,就类似调用QRcode_encodeString(你要显示的字符串, 2,QR_ECLEVEL_H, QR_MODE_8, 0)即可,函数最终计算的结果会传递给qrcode,所以这个qrcode您需要在之前声明下类似这样QRcode *qrcode。
    QRcode_free主要是要释放掉QRcode生成过程中申请的堆。
    代码从第72行到92行,其主要任务是把生成的二维码按照显示器的实际分辨率最大化的显示。
    code.png

    如果一切正常,那么结合小编上期的小文章,就可以把二维码的图像数据显示到EINK屏幕上去了。看结果:


    demo.jpg

    新年快乐! Hello2019!

    关注恩智浦MCU加油站
    addoil.png






    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3302

    主题

    6549

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32045
    最后登录
    2024-4-29
    发表于 2019-1-15 15:09:46 | 显示全部楼层
    前排,支持下
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
    发表于 2019-1-15 15:52:20 | 显示全部楼层
    这屏幕比较贵吧
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 16:01
  • 签到天数: 1480 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92793
    最后登录
    2024-4-29
    发表于 2019-1-15 16:32:44 | 显示全部楼层
    mzy2364 发表于 2019-1-15 15:52
    这屏幕比较贵吧

    估计过百了吧
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2019-1-15 22:31:06 | 显示全部楼层
    赞赞赞,感谢分享啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    839

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3986
    最后登录
    2024-4-29
     楼主| 发表于 2019-1-15 22:45:42 | 显示全部楼层

    不到50,淘宝搜1.54 EINK。不少类似的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    839

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3986
    最后登录
    2024-4-29
     楼主| 发表于 2019-1-15 22:46:16 | 显示全部楼层
    mzy2364 发表于 2019-1-15 15:52
    这屏幕比较贵吧

    还行吧。闹着玩玩,也不贵。两顿兰州,3顿沙县
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20071
    最后登录
    2024-4-29
    发表于 2019-1-16 09:36:39 | 显示全部楼层
    感谢分享!!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3302

    主题

    6549

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32045
    最后登录
    2024-4-29
    发表于 2019-1-25 09:23:20 | 显示全部楼层
    感谢分享
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2019-1-25 10:54:40 | 显示全部楼层
    这个东西还真高级。
    锐度也非常棒
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-29 14:19 , Processed in 0.155737 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表