本帖最后由 mgn 于 2019-1-15 14:55 编辑
LPC55S69 EINK电子墨水屏应用系列 一 https://www.nxpic.org.cn/module/forum/thread-615865-1-2.html
[介绍] 电子墨水屏(EINK)的成本随着时间的推移成本越来越低,应用场景也越来越多。小编最近折腾了一段时间电子墨水屏和MCU低功耗结合的应用,通过两篇微信小文章分享给大家。这一篇就讲解下如何快速搭建一个墨水屏显示的方案。 这几天大家都在过圣诞,那就通过在墨水屏上显示圣诞老人和一颗圣诞树来一步步的讲解搭建过程,同时也祝各位MCUer圣诞快乐! 这篇小文章的开发板是基于LPCXpresso55S69的,EINK小屏幕我们找了一个1.54寸的墨水屏,当然其他任何兼容Arduino接口的LPC开发板均可。 在您拥有一块LPCXpresso55S69开发板的同时,还需要购买一块EINK模组。目前市面上1.54寸的EINK模组要么是淘宝的,要么就从微雪家购买。小编的模组虽然是从淘宝购买的但是比较推荐微雪家的,虽然贵,但是好看些。
[硬件] EINK屏幕是使用SPI为数据传输接口的,但是我们购买的模块并没有按照Arduino的线序设定,所以这里我们为了方便的结合开发板开发不得已使用了GPIO模拟SPI的方法。如下图示意,这里特别关照一点,买来的模块接口不是2.54mm间距的,所以要稍微动下烙铁在模块上焊接一个2.54的排针以引出接口信号。 开发环境用的KEIL,当你下载到开发板上后,我们这个例程就会显示一个圣诞树出来。
[软件] 当您下载了源码后,整个工程相对来讲是非常简洁的。核心文件是epd1in54.c和它的.h,关于EINK屏幕驱动的API都集成在这里。显示一些数据到EINK屏幕上的软件步骤也非常简单,代码里咱们分成了四步。 第一步:初始化相关的引脚和IO口的状态,稍微特殊点的就是BUSY信号了要配置为输入态,由于我们模拟的SPI所以其他的功能引脚均配置成输出状态。 第二步:初始化EINK屏幕,调用的函数是eink_init,这里g_EINKBuffer是屏幕显示数据的缓冲区。 第三步:初始化EINK显示缓冲区并把要显示的数据写入到缓冲区。 第四步,调用eink_frame_set和eink_frame_display两个函数来吧显示缓冲区中的图像显示到EINK屏幕上。 这里我们显示圣诞树的图像数据放在了imagedata.h中
[彩蛋] 这里MCUer可能要问了,我怎么才能把一副图像转成imagedata.h中的数据呢?且看彩蛋部分答疑解惑。彩蛋部分我们以显示圣诞老人的头像为例。 去搜索引擎上找一张圣诞老人的头像并截图,保存成jpeg。这里要注意是,咱们这次的屏幕是200X200的分辨率,所以截图的分辨率也最好是200X200以上的并且是倍数关系。
接下来咱们用image2lcd打开我们截图的内容,在设置方面大家要注意下下图红框中的提示。一个是分辨率要设置成200X200,还有一个是要勾选“颜色翻转”。 最后点击“保存”,将生成的image数组内容替换掉imagedata.h里的即可。
最后编译工程,下载并且运行。就可以在墨水屏上看到ALLBUY版的圣诞老人的头像了。
|