I2C (Base class)

(2014.5.8 作成)

(2017.8.16 更新)

 以下の関数が各マイコンで共通して使用可能です。ただしコンストラクタはマイコンごとに違っているため、それぞれのの実装は各サブページを参照してください。

STM32Arduino

 またベースクラス内にソフトウェアI2Cクラスを置いています。

関数一覧

デバイスがAckを返すまで待機

プロトタイプ virtual void WaitTillDeviceReady(const uint8_t &SlaveAddress)const = 0;
戻り値

なし

引数

SlaveAddress

左詰め7bitアドレスで指定してください。LSB1bitは無視されます。

備考

EEPROMの書き込み完了待ちなどへの使用を想定しています。

デバイスがAckを返すか確認

プロトタイプ virtual bool CheckAck(const uint8_t &SlaveAddress)const =0;
戻り値

Ackを返せばTrue, Nakを返せばFalse

引数

SlaveAddress

左詰め7bitアドレスで指定してください。LSB1bitは無視されます。

備考

デバイスが接続されて、使用できるか確認する用途での使用を想定しています。

デバイスへデータを書き込む

プロトタイプ

virtual void Write(

     const uint8_t &SlaveAddress,

     const uint16_t &Address,

     const uint8_t &AddressLength,

     uint8_t *Data,

     const uint8_t &DataLength

)const = 0;

戻り値 なし
引数

SlaveAddress

左詰め7bitアドレスで指定してください。LSB1bitは無視されます。

Address

デバイス内部のアドレスです。

AddressLength

上記デバイス内アドレスのバイト数です0~2まで対応しています。

Data

実際に送るデータ配列

DataLength

送るデータの量

備考

 

デバイスからデータを読み込む

プロトタイプ

virtual void Read(

     const uint8_t &SlaveAddress,

     const uint16_t &Address,

     const uint8_t &AddressLength,

     uint8_t *Data,

     const uint8_t &DataLength

)const = 0;

戻り値 なし
引数

SlaveAddress

左詰め7bitアドレスで指定してください。LSB1bitは無視されます。

Address

デバイス内部のアドレスです。

AddressLength

上記デバイス内アドレスのバイト数です0~2まで対応しています。

Data

受け取るデータを格納する配列。事前に領域確保が必要。

DataLength

受け取りたいデータの量

備考