2017-08-13 6 views
0

kann nicht herausfinden, wie der Loopback-Test vom Spidev-Modul durchgeführt wird. Ausführen der bereitgestellten spidev_test.c-Datei funktioniert. Noch nicht in Python.Der Versuch, SPI auf RaspPi 3 (Loopback) laufen zu lassen

import spidev 
import time 

spi = spidev.SpiDev() 
spi.loop = True 
spi.open(0,0) 

try: 
    while True: 
     spi.writebytes([0xAA, 0xFF]) 
     time.sleep(0.01) 
     print(spi.readbytes(2))  
except KeyboardInterrupt: 
    spi.close() 
+0

Ich meinte, wie die SPI, um zu überprüfen, so wie ein Byte zu senden und gleichzeitig empfangen . – soderdaen

+0

'spi.writebytes ([0xAA, 0xFF]); Zeit.Schlaf (0.01); print (spi.readbytes (2)) ' – stovfl

+0

Gibt mir den Fehler" OSError: [Errno 9] Fehlerhafter Dateideskriptor "zum Zeitpunkt .sleep (0.01) Zeile – soderdaen

Antwort

0

Comment: Gives the same output as written in xfer2 just because the function xfer2 returns the values that are given, so not really a confirmation of a working spi

Das ist, was xfer tun sollen.
Unterscheidet es sich von spidev_test.c Ausgabe?
Verwenden Sie eine nicht verfügbare port oder device und Sie werden fehlschlagen.


Comment: spi.loopback() missing

Haben Sie den spi.loop-Status überprüft?
Fühlen Sie sich frei spi.loop = True
Relevante einzustellen: Loopback_Testing


Sie suchen etwas wie folgt aus:

import spidev 
import time 

spi = spidev.SpiDev() 
# spidev_test.c uses /dev/spidev1.1 
spi.open(1,1) #use spi Port 1, device (CS) 1 

while True: 
    try: 
     response = spi.xfer2([0xAA, 0xFF]) 
     print(response) 
     time.sleep(1) 
    except KeyboardInterrupt: 
     spi.close() 
+0

Gibt die gleiche Ausgabe wie in xfer2 geschrieben, nur weil die Funktion xfer2 die angegebenen Werte zurückgibt, also nicht wirklich eine Bestätigung eines funktionierenden spi. Plus: spi.loopback() fehlt oder bin ich völlig falsch hier? – soderdaen

+0

@soderdaen: Meine Antwort aktualisiert – stovfl

Verwandte Themen