Wire (メンバ関数版)
Wire (メンバ関数を使用する方法)
using TwoWire = mwx::periph_twowire<MWX_TWOWIRE_RCVBUFF>;
mwx::periph_wire<MWX_TWOWIRE_RCVBUFF>はTwoWireとして参照可能です。
以下の定義型で引数や戻り値の型を記載します。
typedef uint8_t size_type;
typedef uint8_t value_type;
write(), writer::operator() () には、本解説以外にもいくつか引数が定義されてます。
uint8_t cmds[]={11,12};...Wire.write(cmds);initializer_list<> 型Wire.write({11,12})Wire インスタンスの生成ライブラリ内でインスタンスの生成と必要な初期化は行われます。ユーザコードでは Wire.begin() を呼び出すことで利用可能となります。
requestFrom() メソッドを用いる場合、データを一時保管するための FIFO キューのサイズを指定できます。コンパイル時にマクロMWX_TWOWIRE_BUFF に必要なバイト数を指定してコンパイルする。デフォルトは 32 バイトです。
例:
-DMWX_TWOWIRE_BUFF=16
begin()
void begin(
const size_type u8mode = WIRE_100KHZ,
bool b_portalt = false)
ハードウェアの初期化を行います。
| パラメータ | 解説 |
|---|---|
u8mode | バス周波数を指定する。デフォルトは100Khz(WIRE_CONF::WIRE_100KHZ)周波数は WIRE_CONF::WIRE_??KHZで指定し??には50,66,80,100,133,160,200,266,320,400を指定できる。 |
b_portalt | ハードウェアのピン割り当てを変更する。 |
void setup() {
...
Wire.begin();
...
}
void wakeup() {
...
Wire.begin();
...
}
読み書きの手続きは、以下の2種類あります。いずれかを選択して利用します。
requestFrom(), beginTransmission(), endTransmission(), write()
reader, writer
bool probe(uint8_t address)
address で指定したデバイスが応答するかを確認します。デバイスが存在する場合は true が戻ります。
setClock()
void setClock(uint32_t speed)
本来はバス周波数を変更するための手続きですが、何も処理をしません。