共用方式為


I2CMaster_Read函數

頁首: #include < applibs/i2c.h>

在 I2C 主介面上執行讀取作業。 此函數所提供的功能與 POSIX 讀取 (2) 函數相同,但會指定做為作業目標的附屬 I2C 裝置位址。

ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);

參數

  • fd I2C 主介面的檔案描述。

  • address 這是讀取作業來源的部屬 I2C 裝置 位址

  • buffer 從部屬裝置接收資料的輸出緩衝區。 這個緩衝區必須包含足夠的空間才能接收 maxLength 位元組。 如果 maxLength 是 0,則可以是 Null。

  • maxLength 這是要接收的最大位元組數目。 值可以是 0。

錯誤

如果發生錯誤並設定為 errno 錯誤值,則傳回 -1。

  • EBUSY:介面忙碌中,或是 SCL) (I2C 時鐘線保持在低位。

  • ENXIO:此作業未從部屬裝置收到 ACK。

  • ETIMEDOUT:作業會在完成之前逾時;您可以使用 I2CMaster_SetTimeout 函數來調整逾時持續時間。

您也可以指定任何其他 errno 錯誤;這類錯誤不是不確定的,同樣的行為可能無法透過系統更新來保留。

傳回值

傳回成功讀取的位元組數;或 -1 表示失敗,在這種情況下 errno 會設定為錯誤值。 部分的讀取作業,包括 0 位元組的讀取,視為成功。

應用程式資訊清單需求

若要存取 I2c 介面,您的應用程式必須在 應用程式資訊清單的 I2cMaster 欄位中識別。