我正在测试Pi和Arduino之间的i2c通信。
医生说:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
我有这个测试:
在Pi上:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
在Arduino上:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
在Arduino上,我看到以下输出:
byte count=4
0123
我的问题是:该cmd
参数的用途是什么?我在Arduino上看不到哪个字节代表什么的区别。
我想我可以视情况处理它。也许我想使用前2个字节作为命令。
该页面没有关于该方法的太多信息:http : //wiki.erazor-zone.de/wiki : linux : python : smbus : doc
vals
,cmd
是强制性的。
cmd
参数是什么...我不得不做一点点的工作来弄清楚您的意思。不过我没有找到答案。它只能由GPIO扩展器之类的特定芯片使用...