<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Ansteuern der RS232 in C</title>
    <link>http://forum.geizhals.at/feed.jsp?id=65958</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(2): Ansteuern der RS232 in C</title>
      <link>http://forum.geizhals.at/t65958,336224.html#336224</link>
      <description>Also hier der versprochene Quellcode. (MS VC 6.0 )&lt;br&gt;&lt;br&gt;#include windows.h&gt;&lt;br&gt;#include stdio.h&gt;&lt;br&gt;#include conio.h&gt;&lt;br&gt;#include string.h&gt;&lt;br&gt;&lt;br&gt;extern HANDLE hCom;&lt;br&gt;extern OVERLAPPED o;&lt;br&gt;&lt;br&gt;&lt;br&gt;BOOL ReadSerial ( char *Buffer, unsigned long timeout)&lt;br&gt;{&lt;br&gt;	unsigned long dwEvents;&lt;br&gt;	DWORD dwBytesWritten;&lt;br&gt;&lt;br&gt;	Sleep(timeout);&lt;br&gt;&lt;br&gt;	WaitCommEvent(hCom, &amp;dwEvents, &amp;o);&lt;br&gt;&lt;br&gt;	if (dwEvents &amp; EV_RXCHAR) &lt;br&gt;	{&lt;br&gt;		// To do.&lt;br&gt;		ReadFile (hCom, Buffer, BUFFER_SIZE, &amp;dwBytesWritten, &amp;o);&lt;br&gt;		dwEvents ^= EV_RXCHAR;&lt;br&gt;		return true;&lt;br&gt;	}&lt;br&gt;	return false;&lt;br&gt;}&lt;br&gt;&lt;br&gt;void WriteSerial (char *Output)&lt;br&gt;{&lt;br&gt;	DWORD dwBytesWritten;&lt;br&gt;&lt;br&gt;	printf("\n%s", Output);&lt;br&gt;	WriteFile (hCom, Output, strlen(Output), &amp;dwBytesWritten, &amp;o);&lt;br&gt;}&lt;br&gt;&lt;br&gt;BOOL InitSerial (char *CommPort)&lt;br&gt;{&lt;br&gt;	DCB dcb;&lt;br&gt;	BOOL fSuccess;&lt;br&gt;	&lt;br&gt;	hCom = CreateFile( CommPort,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GENERIC_READ | GENERIC_WRITE,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// comm devices must be opened w/exclusive-access&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, // no security attributes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN_EXISTING, // comm devices must use OPEN_EXISTING&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE_FLAG_OVERLAPPED,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// overlapped I/O&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL&amp;nbsp;&amp;nbsp;// hTemplate must be NULL for comm devices&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br&gt;&lt;br&gt;	if (hCom == INVALID_HANDLE_VALUE) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Handle the error.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf ("\nCreateFile failed with error %d.", GetLastError());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;	fSuccess = GetCommState(hCom, &amp;dcb);&lt;br&gt;&lt;br&gt;	if (!fSuccess) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Handle the error.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf ("\nGetCommState failed with error %d.", GetLastError());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;	BuildCommDCB("baud=9600 parity=N data=8 stop=1", &amp;dcb);&lt;br&gt;&lt;br&gt;	fSuccess = SetCommState(hCom, &amp;dcb);&lt;br&gt;&lt;br&gt;	if (!fSuccess) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Handle the error.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf ("\nSetCommState failed with error %d.", GetLastError());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;	printf ("\nSerial port %s successfully initialized.\n", CommPort);&lt;br&gt;&lt;br&gt;	fSuccess = SetCommMask(hCom, EV_RXCHAR);&lt;br&gt;&lt;br&gt;	if (!fSuccess) &lt;br&gt;	{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Handle the error. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf ("\nSetCommMask failed with error %d.", GetLastError());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	// Create an event object for use in WaitCommEvent. &lt;br&gt;&lt;br&gt;	o.hEvent = CreateEvent(&lt;br&gt;		NULL,&amp;nbsp;&amp;nbsp; // no security attributes &lt;br&gt;		FALSE,&amp;nbsp;&amp;nbsp;// auto reset event &lt;br&gt;		FALSE,&amp;nbsp;&amp;nbsp;// not signaled &lt;br&gt;		NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no name &lt;br&gt;		);&lt;br&gt;	o.Internal = NULL;&lt;br&gt;	o.InternalHigh = NULL;&lt;br&gt;	o.Offset = NULL;&lt;br&gt;	o.OffsetHigh = NULL;&lt;br&gt;&lt;br&gt;	return true;&lt;br&gt;}&lt;br/&gt;</description>
      <pubDate>Tue, 02 Apr 2002 09:04:11 GMT</pubDate>
      <guid>http://forum.geizhals.at/t65958,336224.html#336224</guid>
      <dc:creator>Jack Sniper</dc:creator>
      <dc:date>2002-04-02T09:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: Ansteuern der RS232 in C</title>
      <link>http://forum.geizhals.at/t65958,333042.html#333042</link>
      <description>Hi !&lt;br&gt;&lt;br&gt;Ich hab immo keinen Zugriff auf meinen Source Code.&lt;br&gt;Ich hab das unter Windows schon mal gemacht. In der MSDN findest du auch näheres.&lt;br&gt;Nächste Woche poste ich den Source, wenn ich ihn finde.&lt;br&gt;Ansonsten die Empfehlung von Öch verwenden.&lt;br&gt;&lt;br&gt;Noch einfacher:&lt;br&gt;seriell = fopen('COM1','wrb');&lt;br&gt;fprintf(seriell, "Das geht raus.\r\n");&lt;br&gt;fread(....&lt;br&gt;&lt;br&gt;Dabei ist aber die Funktion fürs lesen blockierend.&lt;br&gt;&lt;br&gt;MfG Jack&lt;br/&gt;</description>
      <pubDate>Fri, 29 Mar 2002 10:39:38 GMT</pubDate>
      <guid>http://forum.geizhals.at/t65958,333042.html#333042</guid>
      <dc:creator>Jack Sniper</dc:creator>
      <dc:date>2002-03-29T10:39:38Z</dc:date>
    </item>
    <item>
      <title>Re: Ansteuern der RS232 in C</title>
      <link>http://forum.geizhals.at/t65958,331624.html#331624</link>
      <description>Hallo!&lt;br&gt;Falls du unter Windows arbeitest, kannst du auf die Com Schnittstellen so ähnich wie auf eine Datei zugreifen. Unter Visual C++ gibts da folgende Funktionen (genauere Beschreibungen findest du in der Hilfe):&lt;br&gt;&lt;br&gt;CreateFile() - öffnet die Schnittstelle (Dateiname wäre dann "COM1" bzw. "COM2" usw.)&lt;br&gt;ReadFile() - liest von der Schnittstelle&lt;br&gt;WriteFile() - schreibt auf die Schnittstelle&lt;br&gt;&lt;br&gt;Wenn du willst kann ich dir auch ein Beispielprogramm schicken. Dort ist auch gezeigt wie man die Baudrate, Com Timeout und so Sachen einstellen kann. &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;mfg&lt;br&gt;Öch&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Thu, 28 Mar 2002 08:52:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t65958,331624.html#331624</guid>
      <dc:creator>Öch</dc:creator>
      <dc:date>2002-03-28T08:52:56Z</dc:date>
    </item>
    <item>
      <title>Re: Ansteuern der RS232 in C</title>
      <link>http://forum.geizhals.at/t65958,330227.html#330227</link>
      <description>hi,&lt;br&gt;&lt;br&gt;also ich kann nciht wirklich c außer ein bissi klein wenig. aber dein problem sollte sich IMHO relativ einfach lösen lassen - einfach im google suchen. ich bin mir sicher es gibt eine library um die rs232 anzusteuern. und dann noch das handbuch des frequenzgenerators mit hoffentlich einer beschreibung wie die signale auszusehen haben.&lt;br&gt;&lt;br&gt;s.arge&lt;br/&gt;</description>
      <pubDate>Wed, 27 Mar 2002 01:39:07 GMT</pubDate>
      <guid>http://forum.geizhals.at/t65958,330227.html#330227</guid>
      <dc:creator>S.arge</dc:creator>
      <dc:date>2002-03-27T01:39:07Z</dc:date>
    </item>
    <item>
      <title>Ansteuern der RS232 in C</title>
      <link>http://forum.geizhals.at/t65958,329849.html#329849</link>
      <description>Hi @ all,&lt;br&gt;&lt;br&gt;Mein Problem ist folgendes:&lt;br&gt;&lt;br&gt;Ich soll als Matura-Facharbeit einen Frequenzgenerator (WG810) über die RS232 mittels C-Code ansteuern. &lt;br&gt;&lt;br&gt;Wie schicke ich Daten an die Serielle Schnittstelle? Und wie kann ich überprüfen, ob der Transfer erfolgreich verlaufen ist? &lt;br&gt;&lt;br&gt;Ich wäre für den Programmcode sehr dankbar. &lt;br&gt;&lt;br&gt;Danke, LG Razoreth&lt;br/&gt;</description>
      <pubDate>Tue, 26 Mar 2002 17:27:06 GMT</pubDate>
      <guid>http://forum.geizhals.at/t65958,329849.html#329849</guid>
      <dc:creator>Razoreth</dc:creator>
      <dc:date>2002-03-26T17:27:06Z</dc:date>
    </item>
  </channel>
</rss>
