<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Daten von seriellen Schnittstelle empfangen klappt nicht !]]></title><description><![CDATA[<p>Hi,</p>
<p>habe folgendes Problem. Ich öffne die serielle Schnittstelle und schreibe darauf Daten. Funzt auch super, nur bei Daten empfangen hab ich meine Probleme.<br />
Wollte mit dem Hyper-Terminal eine Antwort schicken, aber ich krieg die Daten nicht eingelesen mit meinem C-Programm</p>
<p>Vielleich kann mir ja jemand helfen !</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

main()
{
char buffer[5];
HANDLE hKommunikation; 
DCB dcb;   
DWORD dwRead;

  // Öffnen der Kommunikation ///////////////////////////////////////////////////// 
 hKommunikation = CreateFile(&quot;COM1&quot;, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL); 
 GetCommState(hKommunikation, &amp;dcb);  /* Datenstruktur mit den aktuellen Werten fuellen (WICHTIG!!) */   

  // Spezielle Werte Initialisieren 
  dcb.BaudRate    = CBR_1200; 
  dcb.ByteSize    = 8;   
  dcb.Parity      = 0;   
  dcb.StopBits    = ONESTOPBIT; 
  dcb.fDtrControl = DTR_CONTROL_DISABLE; 
  dcb.fInX        = FALSE;   
  SetCommState(hKommunikation, &amp;dcb); // Initialisieren mit den geaenderten Werten

WriteFile(hKommunikation, &quot;Hallo&quot;, 5, &amp;dwRead, 0); // Schreibt auf die Schnittstelle  

length = ReadFile(hKommunikation, buffer, 4, &amp;dwRead, NULL);   // Liest von der Schnittstelle             

printf(buffer);
CloseHandle(hKommunikation);
}
</code></pre>
<p>Vielen Dank schonmal im Voraus !</p>
<p>MfG</p>
<p>MTC</p>
<p>P.S.: Kann mir jemand sagen, wo ich das SDK &quot;Device I/O&quot; in Deutsch herbekomme?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/64207/daten-von-seriellen-schnittstelle-empfangen-klappt-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 11:42:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/64207.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Feb 2004 21:36:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Sun, 08 Feb 2004 21:36:45 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>habe folgendes Problem. Ich öffne die serielle Schnittstelle und schreibe darauf Daten. Funzt auch super, nur bei Daten empfangen hab ich meine Probleme.<br />
Wollte mit dem Hyper-Terminal eine Antwort schicken, aber ich krieg die Daten nicht eingelesen mit meinem C-Programm</p>
<p>Vielleich kann mir ja jemand helfen !</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

main()
{
char buffer[5];
HANDLE hKommunikation; 
DCB dcb;   
DWORD dwRead;

  // Öffnen der Kommunikation ///////////////////////////////////////////////////// 
 hKommunikation = CreateFile(&quot;COM1&quot;, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL); 
 GetCommState(hKommunikation, &amp;dcb);  /* Datenstruktur mit den aktuellen Werten fuellen (WICHTIG!!) */   

  // Spezielle Werte Initialisieren 
  dcb.BaudRate    = CBR_1200; 
  dcb.ByteSize    = 8;   
  dcb.Parity      = 0;   
  dcb.StopBits    = ONESTOPBIT; 
  dcb.fDtrControl = DTR_CONTROL_DISABLE; 
  dcb.fInX        = FALSE;   
  SetCommState(hKommunikation, &amp;dcb); // Initialisieren mit den geaenderten Werten

WriteFile(hKommunikation, &quot;Hallo&quot;, 5, &amp;dwRead, 0); // Schreibt auf die Schnittstelle  

length = ReadFile(hKommunikation, buffer, 4, &amp;dwRead, NULL);   // Liest von der Schnittstelle             

printf(buffer);
CloseHandle(hKommunikation);
}
</code></pre>
<p>Vielen Dank schonmal im Voraus !</p>
<p>MfG</p>
<p>MTC</p>
<p>P.S.: Kann mir jemand sagen, wo ich das SDK &quot;Device I/O&quot; in Deutsch herbekomme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454783</guid><dc:creator><![CDATA[mtc]]></dc:creator><pubDate>Sun, 08 Feb 2004 21:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 06:11:45 GMT]]></title><description><![CDATA[<p>ReadFile wartet nicht. Die serielle Schnittstelle ist schon geschlossen, bevor Du im HyperTerminal was gesendet hast. Entweder Schleife, Thread oder WaitCommEvent oder eine Kombination davon verwenden.</p>
<p>Blackbird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454844</guid><dc:creator><![CDATA[Blackbird]]></dc:creator><pubDate>Mon, 09 Feb 2004 06:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 10:33:09 GMT]]></title><description><![CDATA[<p>Danke schonmal für die Antwort, aber versteh ich dich richtig, dass ich einfach in einer FOR Schleife immer nur 1 Zeichen einlese und dieses dann in BUFFER[i++] speichere?<br />
Oder kann ich auch eine WHILE DO Schleife machen und warten bis die Anzahl eingelesener Daten = bestimmter Wert ist ?</p>
<pre><code class="language-cpp">for (i=0; i&lt;86; i++)
{
ReadFile(hKommunikation, buffer[i], 1, &amp;dwRead, NULL);   
};
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">i=0;
while (i&lt;87) do
{
ReadFile(hKommunikation, buffer[i++], 1, &amp;dwRead, NULL);
}
</code></pre>
<p>Ich hoffe das geht so!<br />
Aber wie ich das mit dem Thread oder WaitCommEvent machen soll weiss ich nicht.</p>
<p>MfG</p>
<p>MTC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454926</guid><dc:creator><![CDATA[mtc]]></dc:creator><pubDate>Mon, 09 Feb 2004 10:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 10:22:03 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber wie ich das mit dem Thread oder WaitCommEvent machen soll weiss ich nicht.</p>
</blockquote>
<p>Frage: Wenn du vor ner roten Ampel steht, was machst du?<br />
a) Du fährst so lange mit vollgas um den Block bis sie grün ist<br />
b) Du wartest davor bis sie grün wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454947</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Mon, 09 Feb 2004 10:22:03 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 10:37:14 GMT]]></title><description><![CDATA[<p>Ja okay, habs ja kapiert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Hab es aber auch mit einer WHILE Schleife hinbekommen.</p>
<p>Nur leider passiert bei der Datenübertragung immer ein Fehler und zwar wird als erstes empfangenes Zeichen immer eine Hexadezimal 00 empfangen, obwohl ich die gar nicht sende vom Remote Rechner.</p>
<p>Keine Ahnung warum, vielleicht könnt ihr mir ja helfen, wie ich das wegbekomme.</p>
<p>MfG</p>
<p>MTC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454957</guid><dc:creator><![CDATA[mtc]]></dc:creator><pubDate>Mon, 09 Feb 2004 10:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 10:50:17 GMT]]></title><description><![CDATA[<p>Du mußt den DCB <strong>vollständig</strong> initialisieren, bevor Du sendest/ empfängst. Es durchaus löblich, daß Du Dir zunächst die momentane Einstellung mit GetCommState besorgst. Aber wie ist denn bitte diese Einstellung? Alles so, wie Du es gebrauchen kannst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454973</guid><dc:creator><![CDATA[-King-]]></dc:creator><pubDate>Mon, 09 Feb 2004 10:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 15:50:11 GMT]]></title><description><![CDATA[<p>Mit dem <strong>vollständigen</strong> initialisieren meinst du damit, dass ich alle Werte neu setzen muss ?</p>
<p>Und außerdem weiss ich gar nicht genau, was alle Werte aus dem DCB bedeuten.</p>
<p>Gibt es denn dazu nicht eine deutsche Erklärung ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/455281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/455281</guid><dc:creator><![CDATA[mtc]]></dc:creator><pubDate>Mon, 09 Feb 2004 15:50:11 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von seriellen Schnittstelle empfangen klappt nicht ! on Mon, 09 Feb 2004 19:34:51 GMT]]></title><description><![CDATA[<p>Mit vollständig meine ich vollständig, das hast Du richtig verstanden. Und Deutsch gibt's <a href="http://dict.leo.org/?lang=de" rel="nofollow">hier</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/455494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/455494</guid><dc:creator><![CDATA[-King-]]></dc:creator><pubDate>Mon, 09 Feb 2004 19:34:51 GMT</pubDate></item></channel></rss>