Je teste la communication i2c entre Pi et Arduino.
Le doc dit:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
J'ai ce test:
Sur Pi:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
Sur Arduino:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
Sur l'Arduino, je vois cette sortie:
byte count=4
0123
Ma question est: quelle est l'utilité du cmd
paramètre? Je ne vois pas de distinction sur l'Arduino dont l'octet représente quoi.
Je suppose que je peux y faire face comme bon me semble. Peut-être que je veux utiliser les 2 premiers octets comme commande.
Cette page n'a pas beaucoup d'informations sur la méthode: http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
vals
qui cmd
est obligatoire.
cmd
paramètre ... J'ai dû faire un peu de recherche pour comprendre ce que vous vouliez dire. Je n'ai pas trouvé de réponse cependant ... Elle ne peut être utilisée que par des puces spécifiques comme un expanseur GPIO ou quelque chose ...