跳到內容

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