# I2C M5StackのGrove-Aポート(I2C)を制御するクラスです。 あらかじめ M5.Begin()でI2C通信が初期化されている必要があります。 ## writeCommand() **構文:** bool writeCommand(uint8_t address, uint8_t subAddress); **説明:** 指定のアドレスに書きこみます。 パラメータがない場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | subAddress | uint8_t |機能アドレス | **戻り値:** | 値 |説明 | | --- | --- | |true|送信成功。| |false|送信失敗。| ## writeByte() **構文:** bool writeByte(uint8_t address, uint8_t subAddress, uint8_t data); **説明:** 指定のアドレスに書きこみます。 パラメータ1つある場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | subAddress | uint8_t |機能アドレス | | data | uint8_t |パラメータ | **戻り値:** | 値 |説明 | | --- | --- | |true|送信成功。| |false|送信失敗。| ## writeBytes() **構文:** bool writeBytes(uint8_t address, uint8_t subAddress, uint8_t *data,uint8_t length); **説明:** 指定のアドレスに書きこみます。 パラメータが複数ある場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | subAddress | uint8_t |機能アドレス | | data | uint8_t * |パラメータ配列の先頭 | | length | uint8_t |パラメータ長 | **戻り値:** | 値 |説明 | | --- | --- | |true|送信成功。| |false|送信失敗。| ## readByte() **構文:** bool readByte(uint8_t address, uint8_t *result); **説明:** 指定のアドレスから読み込みます。 読み込み前に送信するデータがなく、返答が1バイトの場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | result | uint8_t * |結果格納先 | **戻り値:** | 値 |説明 | | --- | --- | |true|読込成功。| |false|読込失敗。| ## readByte() **構文:** bool readByte(uint8_t address, uint8_t subAddress,uint8_t *result); **説明:** 指定のアドレスから読み込みます。 読み込み前に送信するデータが機能アドレスのみで、返答が1バイトの場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | subAddress | uint8_t |機能アドレス | | result | uint8_t * |結果格納先 | **戻り値:** | 値 |説明 | | --- | --- | |true|読込成功。| |false|読込失敗。| ## readBytes() **構文:** bool readBytes(uint8_t address, uint8_t count,uint8_t * dest); **説明:** 指定のアドレスから読み込みます。 読み込み前に送信するデータがなく、返答が複数ある場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | count | uint8_t |要求バイト数 | | result | uint8_t * |結果格納先 | **戻り値:** | 値 |説明 | | --- | --- | |true|読込成功。| |false|読込失敗。| ## readBytes() **構文:** bool readBytes(uint8_t address, uint8_t subAddress, uint8_t count, uint8_t * dest); **説明:** 指定のアドレスから読み込みます。 読み込み前に送信するデータが機能アドレスのみで、返答が複数ある場合に使います。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | address | uint8_t |スレーブアドレス | | subAddress | uint8_t |機能アドレス | | count | uint8_t |要求バイト数 | | result | uint8_t * |結果格納先 | **戻り値:** | 値 |説明 | | --- | --- | |true|読込成功。| |false|読込失敗。| ## scanID() **構文:** bool readBytes(bool *result); **説明:** I2Cバス上のデバイス存在確認をおこないます。 **引数** | 引数 |型 |説明 | | --- | --- | --- | | result | bool * |結果格納先 (128バイト) | **戻り値:** | 値 |説明 | | --- | --- | |true|読込成功。| |false|読込失敗。| **使用例;** ```clike bool result[0x80]; M5.I2C.scanID(&result[0]); ```