跳到内容

Alcor6L/eLua/i2c

来自维基教科书,开放世界的开放书籍

此模块包含用于访问 eLua CPU 的 I2C 接口的函数。

eLua 中仅实现主 I2C 模式。

i2c.setup

[编辑 | 编辑源代码]

设置 I2C 接口。

speed = i2c.setup( id, speed )

  • id - I2C 接口的 ID。
  • speed - I2C 接口的时钟频率。它可以是 i2c.FAST (400KHz)、i2c.SLOW (100KHz) 或表示所需 I2C 总线时钟速度的数字(以 Hz 为单位)。

返回值

  • speed - I2C 接口的实际速度。

i2c.start

[编辑 | 编辑源代码]

在指定的 I2C 接口上发送 START。

i2c.start( id )
  • id - I2C 接口的 ID。

返回值:无。

在指定的 I2C 接口上发送 STOP。

i2c.stop( id )
  • id - I2C 接口的 ID。

返回值:无。

i2c.address

[编辑 | 编辑源代码]

在 I2C 接口上发送地址。

acked = i2c.address( id, address, direction )
  • id - I2C 接口的 ID。
  • address - 地址。
  • direction - 如果主设备要发送数据,则为 i2c.TRANSMITTER;如果主设备要接收数据,则为 i2c.RECEIVER。

返回值

  • acked[检查拼写] - 如果 I2C 从机确认了地址,则为 true;否则为 false。

i2c.write

[编辑 | 编辑源代码]

将数据写入已确认 i2c.address 调用的从机。

wrote = i2c.write( id, data1, [data2], ..., [datan] )
  • id - I2C 接口的 ID。
  • data1 - 要发送的数据。它可以是 0 到 255 之间的数字、字符串或数字表(数组)。
  • data2(可选) - 要发送的第二个数据。
  • datan(可选) - 要发送的第 n 个数据。

返回值

  • wrote - 实际写入的字节数。
data = i2c.read( id, numbytes )

从已确认 i2c.address 调用的从机读取多个字节。它会确认收到的所有字节,除了最后一个字节。

  • id - I2C 接口的 ID。
  • numbytes - 要读取的字节数。

返回值

  • data - 从 I2C 接口读取的所有数据的字符串。
华夏公益教科书