Raspberry Pi und SPI-interface (Python): wie Daten übertragen?
Bin ich mit der SPI-Schnittstelle auf meinem Raspberry Pi.
Lese ich die Register des Chips (die ersten 20 Register), die an SPI0 mit dem folgenden code:
spi=spidev.SpiDev()
spi.open(0,0)
x=spi.readbytes(20)
k=0
for i in x:
print(k,hex(i),i)
k=k+1
Meine Frage ist: wie setze ich den Wert eines bestimmten Registers mit "spi.xfer"? Ich habe keine Ahnung, welche Parameter die xfer (...) - Funktion übernimmt.
Wie lese ich einen Wert aus einem bestimmten register mit "spi.xfer"?
Obwohl ich die original C-code; habe ich noch nicht entziffern können, wie zu verwenden xfer(...).
Hier ist der C-code:
https://github.com/doceme/py-spidev/blob/master/spidev_module.c
InformationsquelleAutor Eamorr | 2012-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich, dass diese Zeile code-Schlüssel:
Die Dokumentation sagt uns, dass die Formatierung string:
O
- ein Python-Objekt|
- zeigt an, dass die folgenden sind optionalI
- einint
H
- einshort
B
- einchar
:
- start-Funktion-name string (xfer
)Dieser, scheint es sinnvoll anzunehmen, dass die
list
ist die Daten zu senden, und in der Tat scheint es interpretiert werden als eine Liste von bytes zu senden.Da SPI tendiert zu senden und zu empfangen, parallel dazu die weitere Lesung des Codes führt mich zu glauben, dass jeder Wert in
list
wird ersetzt durch das byte, das empfangen wurde, wenn der einzelne byte gesendet wurde. Es ist seltsam, aber das ist SPI für Sie.InformationsquelleAutor unwind