Seite 1 von 1

Serielle Schnittstelle

Verfasst: Montag 10. Februar 2014, 12:23
von juergen_aschen
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?

Re: Serielle Schnittstelle

Verfasst: Montag 10. Februar 2014, 13:04
von BlackJack
@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.

Re: Serielle Schnittstelle

Verfasst: Montag 10. Februar 2014, 14:36
von juergen_aschen
Hier das Testprogramm:

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
Keine Fehlermeldung,
aber auch keine brauchbaren Daten.

Re: Serielle Schnittstelle

Verfasst: Montag 10. Februar 2014, 14:46
von BlackJack
@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?

Re: Serielle Schnittstelle

Verfasst: Montag 10. Februar 2014, 21:04
von darktrym
Ist vermutlich eines dieser Programme die nur mit Strg-C funktionieren.
Werden denn "Gelesene Bytes" angezeigt?