Tôi đang thử nghiệm giao tiếp i2c giữa Pi và Arduino.
Tài liệu nói:
write_i2c_block_data(addr,cmd,vals) Block Write transaction. int addr,char cmd,long[] None
Tôi có bài kiểm tra này:
Trên Pi:
import smbus
bus = smbus.SMBus(0)
bus.write_i2c_block_data(address, 48, [49, 50, 51] )
Trên Arduino:
void receiveData(int byteCount){
Serial.print("byte count=");
Serial.println(byteCount);
while(Wire.available()) {
number = Wire.read();
Serial.print((char)number);
}
}
Trên Arduino tôi thấy đầu ra này:
byte count=4
0123
Câu hỏi của tôi là: việc sử dụng cmd
tham số là gì? Tôi không thấy sự khác biệt trên Arduino trong đó byte đại diện cho cái gì.
Tôi đoán tôi có thể đối phó với nó như là một sự phù hợp. Có lẽ tôi muốn sử dụng 2 byte đầu tiên làm lệnh.
Trang này không có nhiều thông tin về phương pháp: http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
vals
, cmd
là bắt buộc.
cmd
tham số là gì ... Tôi đã phải làm một chút công bằng để tìm hiểu ý của bạn. Tôi đã không tìm thấy câu trả lời mặc dù ... Nó chỉ có thể được sử dụng bởi các chip cụ thể như thiết bị mở rộng GPIO hoặc thứ gì đó ...