Wie ermittle ich unter Linux (hier Raspbian auf Raspberry) die verfügbaren seriellen Ports?
Unter Windows gehe ich einfach die "COMx" durch und schaue, welche davon sich öffnen lassen.
Unter Linux scheint es aber mehrere "Arten" von COMs zu geben: ttySx, ttyAMAx, ttyUSBx...
1. Funktioniert das prinzipiell genauso: Aufmachen, wenn erfolgreich merken, wieder zumachen?
2. Welche "Namen" können diese COMs haben, die oben genannten, oder gibt es da noch mehr?
Serielle Ports unter Linux ermitteln
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
-
- Beiträge: 6208
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Serielle Ports unter Linux ermitteln
Ja das gibt es: viewtopic.php?f=16&t=8230&p=72839&hilit=Ports#p72839
Die Funktion GetSerialPortNames funktioniert mit normalen Linuxhervorragend, sollte eigentlich auf dem Raspi auch gehen.
Dafür habe ich dies noch nie probiert. So viel ich weiss sind die COM-Nummern nicht immer lückenlos unter Windows.
Die Funktion GetSerialPortNames funktioniert mit normalen Linuxhervorragend, sollte eigentlich auf dem Raspi auch gehen.
Unter Windows gehe ich einfach die "COMx" durch und schaue, welche davon sich öffnen lassen.
Dafür habe ich dies noch nie probiert. So viel ich weiss sind die COM-Nummern nicht immer lückenlos unter Windows.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Serielle Ports unter Linux ermitteln
Mathias hat geschrieben:Die Funktion GetSerialPortNames funktioniert mit normalen Linuxhervorragend, sollte eigentlich auf dem Raspi auch gehen.
Meinst Du die aus dem Forumpost oder die aus der BaseUnix?
Dafür habe ich dies noch nie probiert. So viel ich weiss sind die COM-Nummern nicht immer lückenlos unter Windows.
Das macht ja nichts. Dann gibt es ein false zurück und der Port ist entweder nicht vorhanden oder anderweitig belegt.
Woran sehe ich denn, ob der Port unter Linux bereits verwendet wird? Denn wenn ich mir die Einträge in /sys/class/tty anschaue, habe ich da
ttyAMA0 => anscheinend der Uart, an dem das Bluetooth hängt, denn da steht ein hci0 drin.
ttyS0 => anscheinend der Uart, der auf die Gpios geführt wird, da hängt jetzt offenbar noch die serielle Konsole dran, denn gtkterm kann nicht drauf zugreifen.
ttyUSB0 => ein testweise angesteckter USB-seriell-Wandler, auf den gtkterm auch zugreifen kann.
ttyAMA0 wird mit gtkterm gar nicht angezeigt, ttyS0 wird angezeigt, kann aber nicht geöffnet werden.
Code: Alles auswählen
pi@raspi:/ $ cd /sys/class/tty
pi@raspi:/sys/class/tty $ ls
console tty11 tty17 tty22 tty28 tty33 tty39 tty44 tty5 tty55 tty60 tty9
ptmx tty12 tty18 tty23 tty29 tty34 tty4 tty45 tty50 tty56 tty61 ttyAMA0
tty tty13 tty19 tty24 tty3 tty35 tty40 tty46 tty51 tty57 tty62 ttyprintk
tty0 tty14 tty2 tty25 tty30 tty36 tty41 tty47 tty52 tty58 tty63 ttyS0
tty1 tty15 tty20 tty26 tty31 tty37 tty42 tty48 tty53 tty59 tty7 ttyUSB0
tty10 tty16 tty21 tty27 tty32 tty38 tty43 tty49 tty54 tty6 tty8
pi@raspi:/sys/class/tty $ ls ttyAMA0
close_delay custom_divisor device hci0 iomem_reg_shift irq port type uevent
closing_wait dev flags iomem_base io_type line subsystem uartclk xmit_fifo_size
pi@raspi:/sys/class/tty $ ls ttyS0
close_delay custom_divisor device iomem_base io_type line subsystem uartclk xmit_fifo_size
closing_wait dev flags iomem_reg_shift irq port type uevent
pi@raspi:/sys/class/tty $ ls ttyUSB0
dev device subsystem uevent
pi@raspi:/sys/class/tty $
-
- Beiträge: 6208
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Serielle Ports unter Linux ermitteln
Den Code im 3. Post.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Serielle Ports unter Linux ermitteln
Danke.
Habs gerade glaube ich geschafft, den Uart im Raspi umzubiegen und werde mir mal ein Terminal basteln.
Gtkterm scheint AMA-Ports nicht anzuzeigen. Mit "dmesg | grep tty" werden mir zwar alle 3 Ports angezeigt, in Gtkterm taucht der ttyAMA0 aber nicht auf. Wenn ich ihn von Hand eintrage, kann ich ihn aber öffnen und ansprechen. Komisch...
Habs gerade glaube ich geschafft, den Uart im Raspi umzubiegen und werde mir mal ein Terminal basteln.
Gtkterm scheint AMA-Ports nicht anzuzeigen. Mit "dmesg | grep tty" werden mir zwar alle 3 Ports angezeigt, in Gtkterm taucht der ttyAMA0 aber nicht auf. Wenn ich ihn von Hand eintrage, kann ich ihn aber öffnen und ansprechen. Komisch...