Ich teste die i2c-Kommunikation zwischen Pi und Arduino.
Der Arzt sagt:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
Ich habe diesen Test:
Auf Pi:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
Auf Arduino:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
Auf dem Arduino sehe ich diese Ausgabe:
byte count=4
0123
Meine Frage ist: Wozu dient der cmd
Parameter? Ich sehe keinen Unterschied auf dem Arduino, von welchem Byte was repräsentiert.
Ich schätze, ich kann es nach Belieben angehen. Vielleicht möchte ich die ersten 2 Bytes als Befehl verwenden.
Diese Seite enthält nicht viele Informationen zur Methode: http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
vals
, dass cmd
es zwingend ist.
cmd
Parameter ist ... Ich musste einiges tun, um herauszufinden, was Sie meinten. Ich habe jedoch keine Antwort gefunden ... Es kann nur von bestimmten Chips wie einem GPIO-Expander oder etwas verwendet werden ...