Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

serielle schnittstelle unter linux

Empfohlene Antworten

Veröffentlicht

hallo

ich suche ein tutorial oder informationen über programmierung der seriellen schnittstelle unter linux...

also prinzipiell soll das program einfach nur die daten der schnittstelle einlesen und in der standartausgabe raushaun. nichts wirklch schweres, allerdings bin ich anfänger in c++ :o)

vielen dank schon mal im voraus

/Sven

Hallo,

wenn es wirklich nur eine Standard-Text-IO ist:

Öffne /dev/ttySx (x=0,1) bzw. bei einigen Distris /dev/cuax (x=0,1) wie eine normale Datei....

Zur Einstellung der Parameter sollte setserial Dein Freund sein. Das ist allerdings ein externes Tool, was die Aufgabe sicher besser hinbekommt, als jedes selbstgeschriebene C-Programm... (Man denke an exotische Hardware, mit der Dein Programm umgehen kann, solange das Betriebssystem die devs zur Verfügung stellt)

Daniel

  • 4 Jahre später...

Leider ist der Link nicht mehr vorhanden, hat evtl jemand das Howto für mich oder einen Link. Möchte ansich nur eine ecterne Festplatte über die serielle Schnittstelle anschalten. Falls jemand anders noch eine Idee hat immer her damit

wenn dein device richtig konfiguriert ist, dann kannst du das decvice, z.b. "/dev/ttyS0" wie eine datei öffnen, z.b. mit fopen("/dev/ttyS0","r")

angenommen das device ist eine alte com-maus, dann kannst du einfach mit gpm dem maustreiber laden und das device ist richtig konfiguriert. so hab ich das bei meiner "maus-fernbedienung" gemacht. und wenn du dann von dem device liest, dann bekommst du jede menge chars ^_^

viel spaß damit =)

wenn du noch hilfst brauchst, dann kann ich dir auch mal ein stück code zuschicken.

Dieses kleine Programm gibt dir alles als char aus, was auf "/dev/ttyS0" rein kommt. so als kleines Beispiel ...

Und wenn das Device richtig konfiguriert ist, dann ergeben die werte sogar Sinn :D

kannst dir auch die Zeichen als als Zahl darstellen lassen,

ist vielleicht sinnvoller ...



#include <stdio.h>

#include <errno.h>


#define DEVICE "/dev/ttyS0"


int main(int argc, char *argv[])

{

    FILE *fp;

    char c;


    fp = fopen(TERM_DEVICE, "r");

    if(fp == NULL)

    {

        printf("Error: %s: %s\n", DEVICE, strerror(errno));

        return 1;

    }


    while(1)

    {

        c = fgetc(fp);


        printf("%c ", c);

    }


    fclose(fp);

    return 0;

}


okay danke so lese ich das also aus, aber wie schicke ich denn ein Signal an die Schnittstelle um zum Beispiel ein Relai anzusteuern um ein Gerät wie externe Festplatte ein und auszuschalten?

Nur Beispiel ein wenig muss ich ja auch selber machen, weißt du zufällig wie das mit den Portbelegungen ist

bei solchen sachen solltest du es lieber richtig vernünftig machen ...

schau dir das mal an:

http://sourceforge.net/projects/libserial/

  • 3 Wochen später...

coole Sache danke, werde das Problem erstmal mit einer Zeitschaltuhr lösen und mich dann noch mal damit beschäftigen

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.