Files
2021-02-26 17:27:20 +08:00

4.6 KiB

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 読込失敗。

使用例;

  bool result[0x80];
  M5.I2C.scanID(&result[0]);