Saya menguji komunikasi i2c antara Pi dan Arduino.
Doc mengatakan:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
Saya memiliki tes ini:
Pada Pi:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
Di Arduino:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
Di Arduino saya melihat output ini:
byte count=4
0123
Pertanyaan saya adalah: apa gunanya cmd
parameter? Saya tidak melihat perbedaan pada Arduino yang byte mewakili apa.
Saya kira saya bisa mengatasinya sesuai keinginan. Mungkin saya ingin menggunakan 2 byte pertama sebagai perintah.
Halaman ini tidak memiliki banyak informasi tentang metode ini: http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
vals
, cmd
wajib.
cmd
parameternya ... Saya harus melakukan sedikit mencari tahu apa yang Anda maksud. Namun saya tidak menemukan jawaban ... Itu hanya dapat digunakan oleh chip tertentu seperti GPIO expander atau semacamnya ...