Serielle Schnittstelle
-
- User
- Beiträge: 2
- Registriert: Montag 10. Februar 2014, 12:09
Möchte eine Profibusschnistelle am Rasberry Pi mit 187500 Baud einrichten. Da diese Baudrate nicht zu den normalen gehört, läst sie sich nicht deklarieren. Wie oder wo kann ich die nun trotzdem einrichten?
@juergen_aschen: Was meinst Du mit „lässt sich nicht deklarieren”? Wie sieht der Code und die resultierende Fehlermeldung aus? Du kannst die 187500 einfach als Baudrate übergeben und wenn das `serial`-Modul weiss wie es auf der Plattform nicht-standard Baudraten einstellen kann, dann tut es das.
-
- User
- Beiträge: 2
- Registriert: Montag 10. Februar 2014, 12:09
Hier das Testprogramm:
Keine Fehlermeldung,
aber auch keine brauchbaren Daten.
Code: Alles auswählen
#
import array
import serial
maxReadCount=50
readBuffer = array.array('c')
print('Dises einfaches Beispiel liest vom rs-485 Port')
# Port öffnen
print('Öffne Gerät: /dev/ttyAMA0')
try:
ser = serial.Serial(port='/dev/ttyAMA0', baudrate=187500) # Schnittstelle deklarieren
except:
print('Fehler!')
print('Mögliche Ursache:')
print('1) Der raspicomm Gerätetreiber ist nicht geladen. type \'lsmod\' and verify that you \'raspicommrs485\' is loaded.')
print('2) Der raspicomm Gerätetreiber ist in Benutzung. Eine anderer Application benutzt den Gerätetreiber?')
print('3) Irgendetwas anders beim Laden des Gerätetreibers. type \'dmesg\' and check the kernel messages')
exit()
print('Erfolgreich.')
# read in a loop
print('Starte das lesen vom rs-485 port mit maximal ' + str(maxReadCount) + ' bytes')
readCount=0
while readCount < maxReadCount:
readBuffer.append(ser.read(1))
readCount=readCount+1
# print the received bytes
print('Gelesene Bytes:')
i=0
while i < maxReadCount:
val=ord(readBuffer[i])
hx=''
if val >= 32 and val <= 126:
hx=' - \'{0}\''.format(readBuffer[i])
print('[{0:2d}]: 0x{1:2X}{2}'.format(i, val, hx))
i=i+1
aber auch keine brauchbaren Daten.
@juergen_aschen: Was heisst keine brauchbaren Daten? Es kommen welche an, aber nicht das was Du erwartest? Stimmen denn die anderen Parameter der Verbindung? Kannst Du mit einem Terminalprogramm mit dem externen Gerät kommunizieren?