Estoy probando la comunicación i2c entre Pi y Arduino.
El documento dice:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
Tengo esta prueba:
En Pi:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
En Arduino:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
En el Arduino veo esta salida:
byte count=4
0123
Mi pregunta es: ¿para qué sirve el cmd
parámetro? No veo una distinción en el Arduino de qué byte representa qué.
Supongo que puedo tratarlo como mejor me parezca. Tal vez quiero usar los primeros 2 bytes como comando.
Esta página no tiene mucha información sobre el método: http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
vals
, a diferencia de esto , cmd
es obligatorio.
cmd
parámetro ... Tuve que hacer un buen esfuerzo para averiguar qué quería decir. Sin embargo, no encontré una respuesta ... Solo puede ser utilizado por chips específicos como un expansor GPIO o algo así ...