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 cmd
parametr? 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
, cmd
jest obowiązkowe.
cmd
jest 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