PiとArduinoの間のi2c通信をテストしています。
文書によると:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
私はこのテストを持っています:
Piで:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
Arduinoの場合:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
Arduinoには次の出力が表示されます。
byte count=4
0123
私の質問は、cmd
パラメーターの使用は何ですか?どのバイトが何を表しているのか、Arduinoで区別されません。
私はそれを適切に扱うことができると思います。最初の2バイトをコマンドとして使用したいのかもしれません。
このページには、メソッドに関する多くの情報がありません:http : //wiki.erazor-zone.de/wiki : linux : python : smbus : doc
vals
とcmd
は異なり、必須です。
cmd
パラメータが何であるかを定義したい場合があります。答えが見つかりませんでした... GPIOエクスパンダーなどの特定のチップでのみ使用できます