首页 > 代码库 > 【Espruino】NO.09 使用SPI操作Sharp Memory LCD

【Espruino】NO.09 使用SPI操作Sharp Memory LCD

http://blog.csdn.net/qwert1213131/article/details/28693567

本文属于个人理解,能力有限,纰漏在所难免,还望指正!

【小鱼有点电】

【Espruino中文社区】

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();


视频地址