http://blog.csdn.net/qwert1213131/article/details/28693567
本文属于个人理解,能力有限,纰漏在所难免,还望指正!
【小鱼有点电】
Sharp memory LCD具有较低的功耗,广泛用于智能手表等低功耗领域。与墨水屏相比,刷新率高,超薄,且外围元件极少,仅三个电容便可工作。Espruino 提供了相应的模块和图形驱动,使用SPI接口,非常方便应用!
本节使用1.28寸128*128分辨率的LS013B7H03,采用3.3V供电。
首先我们需要对SPI接口进行设置,我们使用的引脚为B3(SPI1_SCK)、B5(SPI1_MOSI) 、C4(SCS)、C12(EXTCOMIN),波特率为1M,位顺序为lsb(即低位先发),因此设置如下:
SPI1.setup({ sck:B3, mosi:B5, order: "lsb", baud: 1000000 });
然后需要调用MemoryLCD模块:
var g = require("MemoryLCD").connect(SPI1, B4/*SCS*/, C12/*EXTCOMIN*/,128/*宽*/, 128/*高*/);
接下来我们就可以对屏幕进行绘制了。
g.clear();//清除缓冲区内容,即清屏 g.drawImage(img, 0, 0);//用于在坐标(0,0)处绘制图像img g.setFontVector(40);//设置字体大小为高40 g.drawString("Temp.",0,50);//在坐标(0,50)处写文字Temp g.drawLine(0,49,g.getWidth(),49);//画横线,其中g.getWidth()用于获取LCD宽度 g.flip();//将缓冲区内容发送到LCD上显示,只有运行了这句话后,上面的操作内容才会显示在屏幕上
下面来个综合应用,绘制一个表盘
/*绘制表盘*/ var x,y,a,i; for ( i=1; i<=12; i++ ) { /* 获取角度 */ a = i / 6.0 * Math.PI; /* 计算位置 */ x = 64 - 8 + 55 * Math.sin(a); y = 64 - 8 - 55 * Math.cos(a); /* 将数字写到相对应的地址 */ g.drawString(i, x, y); } g.flip();
视频地址
【Espruino】NO.09 使用SPI操作Sharp Memory LCD
时间: 2024-10-12 02:24:52