跳轉至內容

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 介面讀取的所有資料的字串。
華夏公益教科書