mikrocontroller.net

Forum: PC-Programmierung RS232


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sers Leute,
ich beschäftige mich mit der V24 Schnittstelle des PCs. Ich verwende
Windows und möchte über ein C-Programm auf die serielle Schnittstelle
zugreifen. Nachdem ich nun stundenlang auf der Microsoft Support-Page
die Artikel durchgelesen habe, gelingt es mir immerhin schon mit
TransmitCommChar() einen Charakter rauszugeben.Wie schreibe und lese
ich ?
Was ich eigentlich möchte, ist Lesen und Schreiben im Polling-Modus.
Hier kommt gleich das nächste Problem: Wie generiere ich einen Timer in
C.
Ich hoffe jemand von euch hat eine Idee. Vielen Dank schon im voraus.
Gruß Chris

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein paar antworten...

CreateFile,ReadFile,WriteFile <--- damit zugreiffen..
aus der msdn lib..
-----snip----
Communications Resources
The CreateFile function can create a handle to a communications
resource, such as the serial port COM1. For communications resources,
the dwCreationDisposition parameter must be OPEN_EXISTING, and the
hTemplate parameter must be NULL. Read, write, or read-write access can
be specified, and the handle can be opened for overlapped I/O. For more
information about communications, see Communications.

Disk Devices

Windows NT: You can use the CreateFile function to open a disk drive or
a partition on a disk drive. The function returns a handle to the disk
device; that handle can be used with the DeviceIOControl function. The
following requirements must be met in order for such a call to succeed:


The caller must have administrative privileges for the operation to
succeed on a hard disk drive.
The lpFileName string should be of the form \\.\PHYSICALDRIVEx to
open the hard disk x. Hard disk numbers start at zero. For example:
String Meaning
\\.\PHYSICALDRIVE2 Obtains a handle to the third physical drive on
the user's computer.


The lpFileName string should be \\.\x: to open a floppy drive x or a
partition x on a hard disk. For example:
String Meaning
\\.\A: Obtains a handle to drive A on the user's computer.
\\.\C: Obtains a handle to drive C on the user's computer.
-----snip

und noch ein bisserl mehr infos ;)

---- snip

If the name of the port is \\.\COM10, the correct way to specify the
serial port in a call to CreateFile() is as follows:


   CreateFile(
      "\\\\.\\COM10",     // address of name of the
communications device
      fdwAccess,          // access (read-write) mode
      0,                  // share mode
      NULL,               // address of security descriptor
      OPEN_EXISTING,      // how to create
      0,                  // file attributes
      NULL                // handle of file with attributes to copy
   );
----snip

nun noch mehrere fragen...

willst du c oder cpp nehmen

für cpp... mfc oder anderes widgetset???
wenn mfc => CWnd => SetTimer ;)


wenn du kein von cwnd abgeleitetes klässchen hast (z.b consol prog)

----snip
SetTimer
The SetTimer function creates a timer with the specified time-out
value.

UINT SetTimer(
  HWND hWnd,              // handle of window for timer messages
  UINT nIDEvent,          // timer identifier
  UINT uElapse,           // time-out value
  TIMERPROC lpTimerFunc   // address of timer procedure
);

----snip

gut ich glaub das sollte reichen....

btw besser als pollen in der mainmsg-loop ist pollen in einem eigenen
thread.... damit blockierst du dein programm nicht unnötig....

falls noch fragen sind....

73

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibts von MS einen sehr umfangreichen Artikel zu allen Aspekten der
seriellen Schnittstelle:
http://msdn.microsoft.com/library/default.asp?url=...

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.