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 cmdparamè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
valsqui cmdest obligatoire.
cmdparamè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 ...