<?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[Serielle Schnittstelle Com1 ansteuern]]></title><description><![CDATA[<p>Hallo!<br />
Ich weiß, dass man zum dem Thema im Inet einiges findet.<br />
Leider habe ich es noch nicht hinbekommen einen Text zu senden und zu empfangen.</p>
<p>Auf <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp</a><br />
findet man einige Beispielfunktionen.<br />
Leider sind die ziemlich komplex und einiges fehlt.<br />
Zum Beispiel finde ich keine Funktion, um die Schnittstelle wieder zu schließen.</p>
<p>Ich hoffe jemand kann mir helfen.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/122860/serielle-schnittstelle-com1-ansteuern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 17:34:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/122860.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Oct 2005 19:08:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 10 Oct 2005 19:11:15 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich weiß, dass man zum dem Thema im Inet einiges findet.<br />
Leider habe ich es noch nicht hinbekommen einen Text zu senden und zu empfangen.</p>
<p>Auf <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp</a><br />
findet man einige Beispielfunktionen.<br />
Leider sind die ziemlich komplex und einiges fehlt.<br />
Zum Beispiel finde ich keine Funktion, um die Schnittstelle wieder zu schließen.</p>
<p>Ich hoffe jemand kann mir helfen.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889128</guid><dc:creator><![CDATA[ACU]]></dc:creator><pubDate>Mon, 10 Oct 2005 19:11:15 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 10 Oct 2005 19:10:42 GMT]]></title><description><![CDATA[<p>Deine Frage?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889131</guid><dc:creator><![CDATA[hirn]]></dc:creator><pubDate>Mon, 10 Oct 2005 19:10:42 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 10 Oct 2005 19:12:40 GMT]]></title><description><![CDATA[<p>Mit welcher Funktion kann und Senden und mit welcher Empfangen, bei den Beispielen muß man soviele Parameter eintragen, da steige ich nicht ganz durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889135</guid><dc:creator><![CDATA[ACU]]></dc:creator><pubDate>Mon, 10 Oct 2005 19:12:40 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 10 Oct 2005 19:20:00 GMT]]></title><description><![CDATA[<p>ReadFile / WriteFile <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/889145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889145</guid><dc:creator><![CDATA[hirn]]></dc:creator><pubDate>Mon, 10 Oct 2005 19:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 10 Oct 2005 19:23:58 GMT]]></title><description><![CDATA[<p>Nehmen wir einmal die Funktion fürs senden:</p>
<pre><code>DWORD dwRead;
BOOL fWaitingOnRead = FALSE;
OVERLAPPED osReader = {0};

// Create the overlapped event. Must be closed before exiting
// to avoid a handle leak.
osReader.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

if (osReader.hEvent == NULL)
   // Error creating overlapped event; abort.

if (!fWaitingOnRead) {
   // Issue read operation.
   if (!ReadFile(hComm, lpBuf, READ_BUF_SIZE, &amp;dwRead, &amp;osReader)) {
      if (GetLastError() != ERROR_IO_PENDING)     // read not delayed?
         // Error in communications; report it.
      else
         fWaitingOnRead = TRUE;
   }
   else {    
      // read completed immediately
      HandleASuccessfulRead(lpBuf, dwRead);
    }
}
</code></pre>
<p>Aber wo muß ich jetzt den Text übergeben, der gesendet werden soll?</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889155</guid><dc:creator><![CDATA[ACU]]></dc:creator><pubDate>Mon, 10 Oct 2005 19:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 10 Oct 2005 19:26:07 GMT]]></title><description><![CDATA[<p>nirgendwo. das ist ein beispiel zum empfangen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/889159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889159</guid><dc:creator><![CDATA[hirn]]></dc:creator><pubDate>Mon, 10 Oct 2005 19:26:07 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Tue, 11 Oct 2005 07:28:41 GMT]]></title><description><![CDATA[<p>hier mal ein ganz simples beispiel. nicht überlappend, d.h. es wird solange gelesen und gesendet, bis etwas ankommt.</p>
<pre><code class="language-cpp">// Schnittstelle öffnen (Port ist &quot;COM1&quot;, &quot;COM2&quot;, usw.)
HANDLE OpenComm(char *Port)
{
  HANDLE hCom = ::CreateFile(Port,
                             GENERIC_READ | GENERIC_WRITE,
                             0,
                             0,
                             OPEN_EXISTING,
                             FILE_ATTRIBUTE_NORMAL,
                             0);

  if (hCom == INVALID_HANDLE_VALUE)
  {
    // ... Fehler
  }

  return hCom;
}

// Schnittstelle schliessen
void CloseComm(HANDLE hCom)
{
  PurgeComm(hCom, PURGE_RXABORT);
  CloseHandle(hCom);
}

// Port konfigurieren (Parameter siehe MSDN)
void SetDeviceControlBlock(HANDLE hCom, DWORD BaudRate, BYTE ByteSize, BYTE Parity, BYTE StopBits)
{
  if (hCom == INVALID_HANDLE_VALUE)
    return;

  DCB dcb;

  // Schnittstelle auslesen
  if (!::GetCommState(hCom, &amp;dcb))
  {
    // ... Fehler
  }  

  dcb.BaudRate  = BaudRate;
  dcb.ByteSize  = ByteSize;
  dcb.Parity    = Parity;
  dcb.StopBits  = StopBits;

  // Schnittstelle konfigurieren
  if (!::SetCommState(hCom, &amp;dcb))
  {
    // ... Fehler
  }  
}
</code></pre>
<p>Data ist der Datenpuffer, Length die Laenge des Puffers, hCom ist das Handle auf die Serielle Schnittstelle (Com1, usw.)</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
int SendData(HANDLE hCom, char *Data, int Length)
{
  DWORD NumberOfBytesWritten;

  if (!::WriteFile(hCom, Data, Length, &amp;NumberOfBytesWritten, 0))
  {
    // ... Fehler
  }

  return NumberOfBytesWritten;
}

//---------------------------------------------------------------------------
DWORD ReceiveData(HANDLE hCom, char *Data, int Length)
{
  DWORD NumberOfBytesRead;

  if (!::ReadFile(hCom, Data, Length, &amp;NumberOfBytesRead, 0))
  {
    // ... Fehler
  }

  return NumberOfBytesRead;
}
</code></pre>
<p>verwendung dann zum beispiel so:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HANDLE hCom;  

  // COM-Port öffnen und initialisieren
  if ((hCom = OpenComm(&quot;COM1&quot;)) != INVALID_HANDLE_VALUE)
    SetDeviceControlBlock(hCom, CBR_9600, 8, NOPARITY, ONESTOPBIT);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/889335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889335</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Tue, 11 Oct 2005 07:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Tue, 11 Oct 2005 15:48:35 GMT]]></title><description><![CDATA[<p>Vielen Dank für die ausführliche Hilfe.<br />
Sobald ich kann werde ich es ausprobieren.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889777</guid><dc:creator><![CDATA[A C U]]></dc:creator><pubDate>Tue, 11 Oct 2005 15:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 07:34:12 GMT]]></title><description><![CDATA[<p>@ Sunday:</p>
<p>Warum gibst du der Fkt.</p>
<pre><code class="language-cpp">int SendData(HANDLE hCom, char *Data, int Length)
</code></pre>
<p>int Length mit, das könnte man doch dann in der Fkt abfragen mit Data.Length() oder strlen(Data).</p>
<p>Oder würde das nicht funktionieren? Warum?</p>
<p>mfg<br />
Tom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890260</guid><dc:creator><![CDATA[Tom7]]></dc:creator><pubDate>Wed, 12 Oct 2005 07:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 07:38:24 GMT]]></title><description><![CDATA[<p>seit wann hat ein array eine eine funktion Length()? das array weiss doch nicht wie gross es ist.</p>
<p>strlen ermittelt die länge einer zeichenkette und bei binären daten funktioniert das dann nicht mehr, da strlen bis zum ersten \0 zeichen liest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890265</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 12 Oct 2005 07:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 11:16:08 GMT]]></title><description><![CDATA[<p>Aber ich übergebe der Fkt doch eh nur ein Element und von diesem Element, in dem mein Text steht, den ich senden will, müsste ich doch die Länge auch direkt herausbekommen. Da müsste es doch egal sein ob ich die Länge vorher über eine Fkt bestimme oder direkt &quot;inline&quot;?</p>
<p>oder, täsuche ich mich, da?</p>
<p>mfg<br />
Tom</p>
<p>PS: Wie würde deine Fkt aussehen die dann die SendData(....) aufruft?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890480</guid><dc:creator><![CDATA[Tom7]]></dc:creator><pubDate>Wed, 12 Oct 2005 11:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 11:31:57 GMT]]></title><description><![CDATA[<p>vielleicht solltest du dich noch einmal mit den grundlagen von c/c++ beschäftigen...</p>
<pre><code class="language-cpp">const int  BufSize = 25;
char      *Buffer  = new char[BufSize];

// Puffer fuellen 
strcpy(Buffer, &quot;blahfasel dumdidum&quot;);

DWORD BytesWritten = SendData(hCom, Buffer, BufSize);    // 25 zeichen senden
DWORD BytesRead    = ReceiveData(hCom, Buffer, BufSize); // 25 zeichen empfangen

delete [] Buffer;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/890495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890495</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 12 Oct 2005 11:31:57 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 11:36:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">strcpy(Buffer, &quot;blahfasel dumdidum&quot;);
</code></pre>
<p>Hier hast du doch nen String in Buffer kopiert und wenn ich dann:<br />
strlen(Buffer) mache müsste ich doch die Länge von dem Ding bekommen, oder etwa nicht?</p>
<p>StrLen gibt die Anzahl der Zeichen ohne das abschließende Nullbyte eines Strings zurück. -&gt; steht so in der Hilfe.</p>
<p>Also entweder habe ich jetzt nen gewaltigen Denkfehler, dann tuts mir leid, wenn ich lästig war oder ich hab recht dann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>mfg<br />
Tom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890499</guid><dc:creator><![CDATA[Tom7]]></dc:creator><pubDate>Wed, 12 Oct 2005 11:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 11:42:31 GMT]]></title><description><![CDATA[<p>man man man... der string ist doch nur ein beispiel gewesen.</p>
<p>stell dir vor du hast ne kamera an der seriellen schnittstelle haengen, die sendet dir keine strings sondern bilder und die liegen binär vor. diesen enthalten also auch nullbytes bei denen strlen abbrechen würde! deswegen benötigts du die grösse des puffers. die kamera stellt dann z.b. befehle zur verfügung um die grösse eine bildes vor dem transfer abzufragen um entspr. den puffer anzupassen.</p>
<p>capito?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890505</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 12 Oct 2005 11:42:31 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Wed, 12 Oct 2005 11:50:21 GMT]]></title><description><![CDATA[<p>ja, ok, thx, hab nicht beachtet dass es auch möglich ist, dass wie du schon sagst ein NULLBYTE öfters vorkommen kann.</p>
<p>mfg<br />
Tom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890515</guid><dc:creator><![CDATA[Tom7]]></dc:creator><pubDate>Wed, 12 Oct 2005 11:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Sun, 16 Oct 2005 10:27:40 GMT]]></title><description><![CDATA[<p>Ich bins nochmal.<br />
Bei der Funktion zum schließen der Schnittstelle habe ich noch eine Frage, was muß ich als Handle übergeben, damit ich die zuvor geöffnete Com1 wieder schließen kann?</p>
<pre><code>void CloseComm(HANDLE hCom)
{
  PurgeComm(hCom, PURGE_RXABORT);
  CloseHandle(hCom);
}
</code></pre>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893335</guid><dc:creator><![CDATA[ACU]]></dc:creator><pubDate>Sun, 16 Oct 2005 10:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Sun, 16 Oct 2005 10:47:58 GMT]]></title><description><![CDATA[<p>ACU schrieb:</p>
<blockquote>
<p>Ich bins nochmal.<br />
Bei der Funktion zum schließen der Schnittstelle habe ich noch eine Frage, was muß ich als Handle übergeben, damit ich die zuvor geöffnete Com1 wieder schließen kann?</p>
<pre><code>void CloseComm(HANDLE hCom)
{
  PurgeComm(hCom, PURGE_RXABORT);
  CloseHandle(hCom);
}
</code></pre>
<p>MfG ACU</p>
</blockquote>
<p>Das Richtige!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893351</guid><dc:creator><![CDATA[8)]]></dc:creator><pubDate>Sun, 16 Oct 2005 10:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Sun, 16 Oct 2005 11:00:23 GMT]]></title><description><![CDATA[<p>Danke für die aufschlußreiche Antwort.<br />
Das ich das Richtige übergeben muß, habe ich mir selber schon fast gedacht.<br />
Weil wenn ich das falsche übergebe, geht es nicht.</p>
<p>Aber was ist das Richtige den nun?</p>
<p>ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893358</guid><dc:creator><![CDATA[A C U]]></dc:creator><pubDate>Sun, 16 Oct 2005 11:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Sun, 16 Oct 2005 11:04:26 GMT]]></title><description><![CDATA[<p>Das von CreateFile zurückgegebene Handle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893363</guid><dc:creator><![CDATA[Der Checker]]></dc:creator><pubDate>Sun, 16 Oct 2005 11:04:26 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Sun, 16 Oct 2005 18:03:44 GMT]]></title><description><![CDATA[<p>Öffnen und schließen der Schnittstelle funktioniert jetzt.<br />
Ich habe aber noch ein paar kleine Probleme.<br />
Zum Beispiel funktioniert die Konfiguration der Schnittstelle nicht.</p>
<pre><code class="language-cpp">Die Konfiguration rufe ich mit SetDeviceControlBlock(Schnittstelle,9600,8,0,1);
</code></pre>
<p>auf.</p>
<p>Auch das Senden macht noch Probleme (vielleicht auch wegen der Konfiguration).<br />
Ich möchte eine String mit ASCII Zeichen an die Serielle Schnittstelle senden.<br />
Dazu habe ich folgenden Code verwendet:</p>
<pre><code class="language-cpp">char *ch = new char[Form1-&gt;Edit1-&gt;Text.Length()];
strcpy(ch, Form1-&gt;Edit1-&gt;Text.c_str());
</code></pre>
<p>int Laenge;<br />
SendData(Schnittstelle,ch,Edit1-&gt;Text.Length());[/code]<br />
Empfangen tu ich nur sinnlose Werte, die in Keinster Weise den ASCII werten entsprechen.</p>
<p>Wäre toll, wenn jemand helfen könnte.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893661</guid><dc:creator><![CDATA[ACU]]></dc:creator><pubDate>Sun, 16 Oct 2005 18:03:44 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 17 Oct 2005 13:58:52 GMT]]></title><description><![CDATA[<p>was hängt denn an deiner seriellen schnittstelle?</p>
<p>einfach was hinsenden und empfangen, geht glaub ich nicht. zumindest mussten irgendwelche pins miteinander verbunden werden (pin 2 und 3?). das machste zum beispiel mit ner büroklammer oder nem anderen stück draht. dann kannste deine eigenen gesendeten daten empfangen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894175</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Mon, 17 Oct 2005 13:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 17 Oct 2005 14:32:18 GMT]]></title><description><![CDATA[<p>An meiner seriellen Schnittstelle hängt eine C-Control2.<br />
Das ist ein Steuercompter für diverse Steuer und Regel Aufgaben.<br />
Wenn ich per Hyper Terminal sende, funktioniert es tadellos.<br />
Am Anschluß liegt es also nicht-.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894199</guid><dc:creator><![CDATA[A C U]]></dc:creator><pubDate>Mon, 17 Oct 2005 14:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 17 Oct 2005 15:12:13 GMT]]></title><description><![CDATA[<p>was liefert den GetLastError fuer ne fehlermeldung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894246</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:12:13 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 17 Oct 2005 16:16:20 GMT]]></title><description><![CDATA[<p>Das mit LeastError probiere ich nachher nochmnal aus.<br />
Die auf seite 2 von mir geposteten Quellcodeauszuäge sind aber grundsätzlich richtig oder?<br />
Nicht das bei der Umwandlung in char oder so schon der Fehler sitzt.</p>
<p>Die Konfiguration für die Schnittstelle (Geschwindigkeit etc.) muß ich vor oder nach dem öffnen der Schnittstelle aufrufen?</p>
<p>Das komische ist ja, dass schon irgendwas gesendet wird.<br />
Wenn ich eine längere String &quot;versuche zu&quot; senden, dann bekomme ich auch mehr Zeichen als bei einer kurzen.<br />
Deshalb dachte ich an einen Umwandlungsfehler.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894307</guid><dc:creator><![CDATA[A C U]]></dc:creator><pubDate>Mon, 17 Oct 2005 16:16:20 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Mon, 17 Oct 2005 21:17:56 GMT]]></title><description><![CDATA[<p>Ich habe gerade nochmal ausprobiet:<br />
Wenn ich die konfiguriere, bevor die Schnittstelle geöffnet ist, kommen 2 Fehler (Fehler beim lesen und Fehler beim schreiben), wenn ich jedoch die Schnittstelle vorher öffne, kommt nur: &quot;Fehler beim schreiben&quot;.</p>
<p>MfG ACU</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894612</guid><dc:creator><![CDATA[ACU]]></dc:creator><pubDate>Mon, 17 Oct 2005 21:17:56 GMT</pubDate></item><item><title><![CDATA[Reply to Serielle Schnittstelle Com1 ansteuern on Tue, 18 Oct 2005 07:10:43 GMT]]></title><description><![CDATA[<p>die schnittstelle muss geöffnet sein, bevor du sie konfigurieren kannst.</p>
<pre><code class="language-cpp">// Timeouts fuer Port setzen
void SetReadTimeouts(HANDLE hCom)
{
  COMMTIMEOUTS timeouts;

  timeouts.ReadIntervalTimeout         = 100; // Zeit zwischen 2 Zeichen
  timeouts.ReadTotalTimeoutMultiplier  = 0;   // pro Zeichen
  timeouts.ReadTotalTimeoutConstant    = 1;
  timeouts.WriteTotalTimeoutConstant   = 0;   // kein Timeout beim Schreiben
  timeouts.WriteTotalTimeoutMultiplier = 0;

  if (!::SetCommTimeouts(hCom, &amp;timeouts))
  {
    // ... Fehler
  }
}

// hCom ist im Header definiert (HANDLE hCom)
void __fastcall TForm1::OpenComPort(char *Port)
{
  if ((hCom = OpenComm(Port)) != INVALID_HANDLE_VALUE)
  {
    // mit default-Werten initialisieren
    SetDeviceControlBlock(hCom, CBR_9600, 8, NOPARITY, ONESTOPBIT);

    // Timeouts setzen
    SetReadTimeouts(hCom);
  }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  OpenComPort(&quot;COM1&quot;);
}
</code></pre>
<p>wenn du auf Button1 klickst, solltest du schonmal keine fehler bekommen, es sein denn deine Com existiert nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894723</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Tue, 18 Oct 2005 07:10:43 GMT</pubDate></item></channel></rss>