跳至主要內容

类: I2C

大约 3 分钟

类: I2C

该类的构造函数没有绑定给 JS , 无法从 JS 创建实例。

模块 serial 创建了和硬件对应的 I2C 实例,import serial 即可。

类方法

方法 setup

原型: setup (options:object)

设置 i2c 外设, 若遇到错误则抛出异常

options: {
  sda: number,
  scl: number,
  mode: number = 0
  rx_buffer_len: number = 0
  tx_buffer_len: number = 0
  freq: number = 400000
  addr_10bit_en: number = 0
  slave_addr: number|undefined = undefined
  timeout: number = 1000
}

参数:

  • options

    类型object

    参数说明

返回值:

类型undefined

方法 ping

原型: ping (addr:number)

测试总线上的设备是否存在

参数:

  • addr

    类型number

    参数说明设备地址

返回值:

类型bool

true 表示该地址上设备存在,false 表示不存在

方法 scan

原型: scan (from:number=0, to:number=127)

在总线上扫描设备给定地址范围的所有设备,在控制台上输出存在的地址

参数:

  • from=0

    类型number

    默认值0

    参数说明起始地址

  • to=127

    类型number

    默认值127

    参数说明结束地址

返回值:

类型undefined

方法 send

原型: send (addr:number, data:number[]|ArrayBuffer)

在总线上向指定设备发送数据

参数 data 可以是 ArrayBuffer 对象, 也可以是字节数值的数值, 例如:[0x1, 0x2, 0x3]

  • 发送数据后,接收到设备的 ack 回应则返回 true
  • 否则返回 false (总线上设备可能不存在)
  • 其他错误抛出异常

参数:

  • addr

    类型number

    参数说明设备地址

  • data

    类型number[], ArrayBuffer

    参数说明字节数据

返回值:

类型bool

方法 recv

原型: recv (addr:number, length:number)

在总线上从指定地址(参数addr)的设备, 接收指定长度(参数length)的数据

  • 接收到的数据以 ArrayBuffer 对象返回
  • 如果总线上设备不存在则返回 null
  • 其他错误抛出异常

参数:

  • addr

    类型number

    参数说明设备地址

  • length

    类型number

    参数说明接收数据的长度

返回值:

类型ArrayBuffer, null

上次编辑于:
贡献者: alee