Forum: PC-Programmierung Raspberry Pi, Node.js: serialport führt zu "Speicherzugriffsfehler"


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Heiko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin Forum,
ich überlege gerade, ob ich eine Anwendung auf einem STM32 oder auf 
einem RPi laufen lassen werden.

Wie ich inzwischen herausgefunden habe, würde mich der Einsatz von 
node.js auf dem RPi relativ schnell zu meinem Ziel bringen.
Dafür ist es unter anderem notwendig, dass ich auf eine USB Serielle 
Schnittstelle zugreifen kann. (RS485 Bus).

Nun bin ich wie folgt vorgegangen:

- RPI über Noob Lite installiert
- node.js installiert
- serialport für node.js installiert

Folgendes Testprogramm geschrieben (serial.js)
1
const SerialPort = require('serialport');
2
const port = new SerialPort('/dev/ttyUSB0', () => {
3
  console.log('Port Opened');
4
});

Dies führt leider aber zu der Fehlermeldung "Speicherzugriffsfehler".

Andere Testprogramme (mit socket.io) etc. laufen einwandfrei.

Also habe ich mich nach einer Alternative zu serialport umgeschaut und 
bin auf "raspi-serial" gestossen. Also damit ein vergleichbaren Test 
durchgeführt, aber auch dies führt zum gleichen Fehler.

Wenn ich mittels
1
echo Hallo > /dev/ttyUSB0
 schreibe, gibt es keine Fehlermeldung.

Da ich neu mit node.js arbeite, stehe ich nun ein bisschen auf dem 
Schlauch, wie ich weitermachen sollte.
Ich habe bereits andere UARTS probiert. (z.b. ttyAMA0 und serial0) doch 
immer endet is in "Speicherzugriffsfehler".


Google-Recherchen waren leider bisher alle erfolglos.

Hat jemand eine Idee, was ich noch probieren könnte oder hat jemand 
schon einmal das Problem selbst erlebt?

VG
Heiko

von Heiko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

SerialPort@?7.1.2
Node.js v8.15.0
inux HomeControl_Panel1 4.14.90-v7+ #1183 SMP Fri Dec 21 14:03:50 GMT 
2018 armv7l GNU/Linux

von TestX (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Poste bitte einmal die originale Fehlermeldung! Welche serialport 
Version nutzt du ?

von Heiko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich nutze 7.1.2. Ich habe gerade mal 6.2.2 installiert und damit 
funktioniert es nun. :)

Ein anderer Nutzer hat vor ein paar Minuten auf github ein ähnlichen 
Fehlerbericht gepostet. Es scheint also an der 7.x Version zu liegen.

Ich kann aber mit der 6.2.2 leben, somit hat sich das Problem vorerst 
für mich gelöst.

Vielen Dank!

von Frederic K. (warfley)


Bewertung
0 lesenswert
nicht lesenswert
Heiko schrieb:
> Wenn ich mittelsecho Hallo > /dev/ttyUSB0 schreibe, gibt es keine
> Fehlermeldung.

Dann mach es doch Unix style, "everything is a file". Öffne die Datei 
/dev/ttyUSB0 als text Datei, dann solltest du lesen und schreiben können 
wie eine Normale Datei und der Kernel kümmert sich um den Rest. Wenn du 
eine andere BAUD rate haben möchtest oder ähnliches reicht ein simpler 
Aufruf von stty: https://linux.die.net/man/1/stty

Einfacher geht es wohl nicht, und das ganze ist komplett 
Programmiersprachen unabhängig.

Solche Bibliotheken braucht man vor allem wenn man Plattformunabhängig 
laufen möchte. Aber wenn du nur auf einem Raspi (i.e. ARM Linux) laufen 
willst kannst du es auch einfach Systemnah machen

: Bearbeitet durch User
von Blauer Zahn (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Welchen Pi hast du?
Beim 3 B+ z.B. muss für UART erstmal Bluetooth ausgeschaltet werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.