Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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...
Geschrieben

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

Geschrieben

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.

Geschrieben

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;

}


Geschrieben

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

  • 3 Wochen später...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...