Testuję komunikację i2c między Pi a Arduino.
Doktor mówi:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
Mam ten test:
Na Pi:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
W Arduino:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
Na Arduino widzę ten wynik:
byte count=4
0123
Moje pytanie brzmi: do czego służy ten cmdparametr? Nie widzę rozróżnienia na Arduino, którego bajt reprezentuje co.
Chyba mogę sobie z tym poradzić, jak się wydaje. Może chcę użyć pierwszych 2 bajtów jako polecenia.
Na tej stronie nie ma zbyt wiele informacji na temat metody: http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
vals, cmdjest obowiązkowe.
cmdjest parametr ... Musiałem sporo się zastanowić, żeby zrozumieć, co masz na myśli. Nie znalazłem jednak odpowiedzi ... Może być używana tylko przez określone układy, takie jak ekspander GPIO lub coś w tym stylu