阿里云首页 IoT物联网操作系统

sh1106 oled屏幕驱动

说明

硬件平台支持

硬件平台

是否支持

说明

HaaS600-EC100Y

HaaS600-EC600S

HaaS510

HaaS531

HaaS100

HaaS EDU K1

HaaS200

开发中

示例代码

板级配置

说明

板级详细配置说明见:app.json - 全局配置文件说明

SPI

"io": {
  "oled_dc": {
    "type": "GPIO",
    "port": 28,
    "dir": "output",
    "pull": "pulldown"
  },
  "oled_res": {
    "type": "GPIO",
    "port": 30,
    "dir": "output",
    "pull": "pulldown"
  },
  "oled_spi": {
    "type": "SPI",
    "port": 1,
    "mode": "mode3",
    "freq": 26000000
  }
}

应用脚本

import * as spi from 'spi'
import * as gpio from 'gpio'
import SH1106 from 'sh1106.js'

var oled_dc = gpio.open({ id: "oled_dc" });
var oled_res = gpio.open({ id: "oled_res" });
var oled_spi = spi.open({ id: "oled_spi" });

var dispaly = new SH1106(132, 64, oled_spi, oled_dc, oled_res, undefined)        // 创建显示驱动对象
dispaly.open()                                                // 初始化显示驱动对象

var HAAS_XBM_width = 23
var HAAS_XBM_height = 9

var HAAS_XBM = [0xff, 0xff, 0xfe, 0x80, 0x00, 0x02, 0xa4, 0xc6, 0x7a, 0xa5, 0x29, 0x42, 0xbd, 0xef, 0x7a, 0xa5, 0x29, 0x0a, 0xa5, 0x29, 0x7a, 0x80, 0x00, 0x02, 0xff, 0xff, 0xfe]
dispaly.draw_XBM(20, 20, HAAS_XBM_width, HAAS_XBM_height, HAAS_XBM)        // 在帧缓冲区绘制 HaaS图标
dispaly.show()                // 将帧缓冲区内容绘制至屏幕

接口定义

构造函数

classsh1106 = sh1106(width, hieght, spi, gpio_dc, gpio_res, gpio_cs)

构建一个sh1106对象,以SPi方式驱动。参数为:

  • width 宽度为以像素为单位的屏幕宽度。

  • height 高度为以像素为单位的屏幕高度。

  • spi 驱动sh1106的spi对象,要求spi硬件接线正确。

  • gpio_dc 驱动sh1106的gpio_dc对象。要求dc引脚接线正确。dc引脚控制命令与数据字节。

  • gpio_res 驱动sh1106的gpio_res对象。要求res引脚接线正确。res引脚低电平控制屏幕复位。

  • gpio_cs 驱动sh1106的gpio_cs对象。cs引脚可悬空。cs引脚低电平控制屏幕使能。

绘画函数

SH1106.show()

将帧缓冲区的内容发送到屏幕上。

帧缓冲区函数

下面的类函数将图形绘制到帧缓冲区中。调用show()方法显示在屏幕上。

SH1106.fill(Number c)

使用指定颜色填满整个帧缓冲区。

入参

属性

类型

描述

c

Number

填充颜色。0:像素灭;1:像素亮。

SH1106.pixel(Number x, Number y, Number c)

若未给定c,则获取指定像素的色值。若给定c,将帧缓冲上的指定像素设置到给定颜色。

入参

属性

类型

描述

x

Number

相对屏幕左上角的像素坐标x。

y

Number

相对屏幕左上角的像素坐标y。

c

Number

若给定c,将帧缓冲上的指定像素设置到给定颜色。0:像素灭;1:像素亮;2:像素反色;

若未给定c,则返回指定坐标像素的色值。

返回值

属性

类型

描述

c

Number

指定像素色值。

SH1106.line(Number x1, Number y1, Number x2, Number y2, Number c)

使用给定颜色从一组坐标中绘制一条线。

入参

属性

类型

描述

x1

Number

相对屏幕左上角的像素1坐标x。

y1

Number

相对屏幕左上角的像素1坐标y。

x2

Number

相对屏幕左上角的像素2坐标x。

y2

Number

相对屏幕左上角的像素2坐标y。

c

Number

对象颜色。0:像素灭;1:像素亮;2:像素反色。

SH1106.rect(Number x, Number y, Number w, Number h, Number c)

SH1106.fill_rect(Number x, Number y, Number w, Number h, Number c)

在帧缓冲上的给定位置、按照给定大小和颜色绘制一个矩形。 rect 类函数仅绘制1个像素的边框,而 fill_rect 类函数可绘制出边框和矩形内部。

入参

属性

类型

描述

x

Number

相对屏幕左上角的矩形顶点坐标x。

y

Number

相对屏幕左上角的矩形顶点坐标y。

w

Number

矩形宽度。

h

Number

矩形高度

c

Number

对象颜色。0:像素灭;1:像素亮;2:像素反色。

SH1106.draw_XBM(Number x, Number y, Number w, Number h, Array bitmap)

在帧缓冲上的给定位置绘制XBM 位图

入参

属性

类型

描述

x

Number

相对屏幕左上角的位图坐标x。

y

Number

相对屏幕左上角的位图坐标y。

w

Number

位图宽度。

h

Number

位图高度。

c

Number

位图内容。位图中为1的bit将在屏幕上点亮。