M
M
MWX Library
検索…
Wire
二線シリアル(I2C) master の読み書き (mwx::periph_wire)
二線シリアル(I2C) master の読み書きを行います。

別名定義

1
using TwoWire = mwx::periph_twowire<MWX_TWOWIRE_RCVBUFF>;
Copied!
mwx::periph_wire<MWX_TWOWIRE_RCVBUFF>TwoWireとして参照可能です。

型定義

以下の定義型で引数や戻り値の型を記載します。
1
typedef uint8_t size_type;
2
typedef uint8_t value_type;
Copied!

注意事項

API 中に STOP ビットの扱いが厳格でない呼び出しを行うものもあります。
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()

1
void begin(
2
const size_type u8mode = WIRE_100KHZ,
3
bool b_portalt = false)
Copied!
ハードウェアの初期化を行います。
初期化せずにWireの操作を行うとTWELITE無線モジュールがハングアップします。
スリープからの起床時は、スリープ直前で動作していた場合、直前の状態に復帰します。
パラメータ
解説
u8mode
バス周波数を指定する。デフォルトは100Khz(WIRE_CONF::WIRE_100KHZ) 周波数はWIRE_CONF::WIRE_??KHZで指定し??には50,66,80,100,133,160,200,266,320,400を指定できる。
b_portalt
ハードウェアのピン割り当てを変更する。

1
void setup() {
2
...
3
Wire.begin();
4
...
5
}
6
7
void wakeup() {
8
...
9
Wire.begin();
10
...
11
}
Copied!

読み書き

読み書きの手続きは、以下の2種類あります。いずれかを選択して利用します。

その他

プローブ(デバイスの存在判定)

1
bool probe(uint8_t address)
Copied!
address で指定したデバイスが応答するかを確認します。デバイスが存在する場合は true が戻ります。

setClock()

1
void setClock(uint32_t speed)
Copied!
本来はバス周波数を変更するための手続きですが、何も処理をしません。
最終更新 1yr ago