跳转至内容

Alcor6L/PicoLisp/i2c

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

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

eLua(和 Alcor6L)中只实现了主 I2C 模式。

i2c-setup

[编辑 | 编辑源代码]

设置 I2C 接口。

(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。

返回值:NIL。

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

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

返回值:NIL。

i2c-address

[编辑 | 编辑源代码]

在 I2C 接口上发送地址。

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

返回值

  • asked - 如果 I2C 从设备确认了地址,则为 true;否则为 false。

i2c-write

[编辑 | 编辑源代码]

将数据写入已确认 i2c-address 调用的从设备。

(i2c-write id any1 [any2] ... [anyn] )
  • id - I2C 接口的 ID。
  • any1 - 要发送的数据。可以是 0 到 255 之间的数字、符号或列表。
  • any2(可选) - 要发送的第二个数据。
  • anyn(可选) - 要发送的第 n 个数据。

返回值

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

从已确认 i2c-address 调用的从设备读取一定数量的字节。它确认接收到的所有字节,除了最后一个字节。

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

返回值

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