<?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[MS Windows Borland C++ builder V5 serielee Schnittstelle]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>wie schon gesagt programmiere ich in Windows unter Borland C++ builder (Version 5).<br />
Ich schreibe gerade ein Programm welches Daten über eine Serielle Schnittstelle an einem µC übergeben soll.<br />
Zur Zeit gibt es allerdings den µC noch nicht und deshalb soll ich mein Programm mit meinem Programm selber testen:<br />
Also mit 2 PCs, indem ich von einem PC Daten sende und beim anderen empfangen soll.<br />
Ich dachte eigentlich dass alles funktioniert, aber leider sind die Daten die ich empfange leer! (glaube ich zumindest)</p>
<p>Ich habe die vordefinierten Funktionen (die funktionieren und die ich auch verwenden sollte)</p>
<p>HANDLE Open_Comport(DWORD Comport, DWORD Baudrate);<br />
int Close_Comport(HANDLE Driverhandle);<br />
int Write_Comport(HANDLE Driverhandle, DWORD NumBytes, void *Buffer);<br />
int Read_Comport(HANDLE Driverhandle, DWORD * BytesRead, DWORD Buffersize, void * Buffer, DWORD tout_dw);</p>
<p>Mein Code auf dem Sende-PC:</p>
<p>HANDLE com_status_h;<br />
DWORD baudrate_dw;<br />
chrar port_nr=1;<br />
char str[22];</p>
<p>//...Beispiel Daten<br />
str[0]='a';<br />
str[1]='b';<br />
str[2]='c';<br />
str[4]='d';<br />
laenge=4;</p>
<p>com_status_h=Open_comport(port_nr, baudrate_dw);<br />
Write_Comport(com_status_h,laenge,str);<br />
[/code]</p>
<p>Mein Code auf dem Empfangs-PC:</p>
<pre><code>[code]
com_status_h=Open_comport(port_nr, baudrate_dw);

try
{
  Read_Comport(com_status_h,&amp;rec_bytes_dw,25,rec_bus_c,500);
  Memo-&gt;Lines-&gt;Add(TimeToStr(Time()) + &quot;|&quot; + rec_bus_c);             // 09:33:28 | (-LEER-)
 }
catch ( ... )
{
  throw;
}
</code></pre>
<p>...Und leider hab ich dann nur die aktuelle Zeit und den Strich aber keine Daten in meinem String! Und ich<br />
habe überhaupt keine Idee wieso. Hab jetzt schon einige Möglichkeiten durchprobiert, aber nichts hab geholfen,<br />
und deshalb hoffe ich jetzt auf eure Hilfe.</p>
<p>Danke im vorraus</p>
<p>Kiki</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/156879/ms-windows-borland-c-builder-v5-serielee-schnittstelle</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 04:23:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/156879.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Aug 2006 07:46:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 07:46:51 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>wie schon gesagt programmiere ich in Windows unter Borland C++ builder (Version 5).<br />
Ich schreibe gerade ein Programm welches Daten über eine Serielle Schnittstelle an einem µC übergeben soll.<br />
Zur Zeit gibt es allerdings den µC noch nicht und deshalb soll ich mein Programm mit meinem Programm selber testen:<br />
Also mit 2 PCs, indem ich von einem PC Daten sende und beim anderen empfangen soll.<br />
Ich dachte eigentlich dass alles funktioniert, aber leider sind die Daten die ich empfange leer! (glaube ich zumindest)</p>
<p>Ich habe die vordefinierten Funktionen (die funktionieren und die ich auch verwenden sollte)</p>
<p>HANDLE Open_Comport(DWORD Comport, DWORD Baudrate);<br />
int Close_Comport(HANDLE Driverhandle);<br />
int Write_Comport(HANDLE Driverhandle, DWORD NumBytes, void *Buffer);<br />
int Read_Comport(HANDLE Driverhandle, DWORD * BytesRead, DWORD Buffersize, void * Buffer, DWORD tout_dw);</p>
<p>Mein Code auf dem Sende-PC:</p>
<p>HANDLE com_status_h;<br />
DWORD baudrate_dw;<br />
chrar port_nr=1;<br />
char str[22];</p>
<p>//...Beispiel Daten<br />
str[0]='a';<br />
str[1]='b';<br />
str[2]='c';<br />
str[4]='d';<br />
laenge=4;</p>
<p>com_status_h=Open_comport(port_nr, baudrate_dw);<br />
Write_Comport(com_status_h,laenge,str);<br />
[/code]</p>
<p>Mein Code auf dem Empfangs-PC:</p>
<pre><code>[code]
com_status_h=Open_comport(port_nr, baudrate_dw);

try
{
  Read_Comport(com_status_h,&amp;rec_bytes_dw,25,rec_bus_c,500);
  Memo-&gt;Lines-&gt;Add(TimeToStr(Time()) + &quot;|&quot; + rec_bus_c);             // 09:33:28 | (-LEER-)
 }
catch ( ... )
{
  throw;
}
</code></pre>
<p>...Und leider hab ich dann nur die aktuelle Zeit und den Strich aber keine Daten in meinem String! Und ich<br />
habe überhaupt keine Idee wieso. Hab jetzt schon einige Möglichkeiten durchprobiert, aber nichts hab geholfen,<br />
und deshalb hoffe ich jetzt auf eure Hilfe.</p>
<p>Danke im vorraus</p>
<p>Kiki</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121240</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 07:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 07:51:08 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>du musst ReadComport in eine Schleife packen</p>
<p>corvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121248</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 07:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 07:55:55 GMT]]></title><description><![CDATA[<p>jo des hab ich schon gemacht bzw probiert. Erst hab ich ne for-schleife 10 mal durchlaufen lassen und dannach hab ich ne While-Schleife genommen und ne Quasi-endlosschleife gemacht. Hat aber leider auch net funktioniert!</p>
<pre><code>bool empfangen=true;
while(empfangen)
{
  Read-Comport(com_status_h,&amp;rec_bytes_dw,25,rec_bus_c,500);
  if(rec_bytes_dw&gt;0)
    empfangen=false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1121253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121253</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 07:55:55 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 08:29:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* read()
{
  unsigned char InString[COM_BUFFER_SIZE + 1] = &quot;&quot;;
  DWORD dwRead = 0;
  ReadFile (hCom, &amp;InString, sizeof (InString), &amp;dwRead, NULL);
  if (dwRead == 0)
  {
   InString[dwRead] = '\0';
   return (char*)InString;
  }
  else
  {
  return &quot;Keine Befehle erhalten&quot;;
  }

}
</code></pre>
<p>teste mal das zum lesen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121288</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:29:43 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 08:30:51 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;windows.h&gt;              
#include &lt;conio.h&gt;              
#include &lt;ctype.h&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1121290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121290</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 08:33:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">DCB dcb;
   hCom = CreateFile (&quot;COM1&quot;, GENERIC_WRITE | GENERIC_READ, 0, NULL,
   OPEN_EXISTING, 0, NULL);
   // setzen der Blocklaenge, muss erfolgen--------------------------
   dcb.DCBlength = sizeof(DCB);
   // COM-Einstellungen laden----------------------------------------
   GetCommState (hCom, &amp;dcb);
   // Baudrate einstellen, hier 9600---------------------------------
   dcb.BaudRate  = 9600;
   // Datenbits einstellen, hier 8-----------------------------------
   dcb.ByteSize  = 8;
   // Paritaet einstellen, hier keine Paritaet-------------------------
   dcb.Parity    = NOPARITY;
   // Stopbits einstellen, hierv1------------------------------------
   dcb.StopBits  = ONESTOPBIT;
   // COM-Einstellungen speichern------------------------------------
   SetCommState (hCom, &amp;dcb);
   return 0;;
}

int close_com()
{
   CloseHandle (hCom);
   return (0);
}
</code></pre>
<p>corvin</p>
<p>PS: weiss die quelle grad nich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121291</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:33:56 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 09:05:01 GMT]]></title><description><![CDATA[<p>Also ganzen Einstellungen wie Stopbit, Baudrate, Parity mache ich alle in der Open_comport-Funktion.</p>
<p>Meine Empfangs-Funktion sieht jetzt so aus:</p>
<pre><code class="language-cpp">int i=0;
bool empfangen=true;
  //Port öffnen
  com_status_h = Open_Comport (portnr_c, baudrate_dw);
  if (com_status_h == 0)   // error in opening port
  {
   StatusBar-&gt;Panels-&gt;Items[0]-&gt;Text = &quot;COM &quot;+AnsiString(itoa(portnr_c,s,10))+&quot; failed to open !&quot;;
  }
  else
  {
   StatusBar-&gt;Panels-&gt;Items[0]-&gt;Text = &quot;COM &quot;+AnsiString(itoa(portnr_c,s,10))+&quot; successfully opened !&quot;;
   open_com_b = true;      // set flag that port is opened
  }

  char *test=new char;

  while(empfangen)
  {
  test=read();
  i++;
  if(i==2000)
    empfangen=false;
  }
  Memo-&gt;Lines-&gt;Append(test.c_str());
  Memo-&gt;Lines-&gt;Append(i);
}

-----------------------------------------
char* TBefehlsauswahl::read()
{
    unsigned char InString[22 + 1] = &quot;&quot;;
    DWORD dwRead = 0;
    ReadFile (com_status_h, &amp;InString, sizeof (InString), &amp;dwRead, NULL);
    if (dwRead == 0)
    {
     InString[dwRead] = '\0';
     return (char*)InString;
    }
    else
    {
    return &quot;Keine Befehle erhalten&quot;;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1121304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121304</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 09:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 09:06:16 GMT]]></title><description><![CDATA[<p>...aber irgendwas stimmt da wohl noch net ganz, da ich en Fehler bekomme.<br />
(ich glaub ich hab irgendwo wa mit dem char * falsch gemacht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121305</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 09:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 09:24:08 GMT]]></title><description><![CDATA[<p>...hab meinen Fehler glaub gefunden:</p>
<pre><code>...
  char *test=read();
  Memo-&gt;Lines-&gt;Append(test);
...
</code></pre>
<p>Jetzt geht es zwar aber in Test steht immer X''C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121319</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 09:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 09:41:36 GMT]]></title><description><![CDATA[<p>setze da mal einen breakpoint und schau dir die Variable als Hex-Zahl an</p>
<p>corvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121336</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 09:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 09:44:21 GMT]]></title><description><![CDATA[<p>ist die hardware richtig????</p>
<p>corvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121338</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 09:44:21 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 09:50:19 GMT]]></title><description><![CDATA[<p>Hardware?<br />
Meinst du des Kabel? Wenn ja, des müsste schon des richtige sein. Ich kann über ein Terminal (TeraTerm) eine Verbindung über Com1 herstellen und auch Daten damit übertragen. Also daran dürfte es wohl nicht liegen.<br />
Mir ist aber gerade etwas anderes aufgefallen:</p>
<p>Die vorbefinierten Funktionen sind für BCB Version 3 geschreiben. Aber des dürfte ja eigentlich auch keine Probleme machen, da ich ja ne höhere Version habe.</p>
<p>...zu der Sache mit dem Breakpoint:<br />
den kann ich zwar setzen, weiß allerdings nicht wo ich mir dann die Zahl als Hex-Wert anschauen kann. (habe noch nicht so viel Erfahrung mit BCB <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121344</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 09:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 10:11:00 GMT]]></title><description><![CDATA[<p>Ok, ich auch noch nicht <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>Wert markieren -&gt; Str+F5<br />
in dem erscheinenden Fenster -&gt; Doppelklick auf den Wert -&gt; Hexadezimal auswählen -&gt; OK klicken</p>
<p>[EDIT] wegen dem Kabel, bei mir konnte nichts gesendet werden, weil der Sendepin auf dem anderen Sendepin sendet (un empfangen tu ich auf den Empfangspin)</p>
<p>corvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121353</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 10:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 11:32:47 GMT]]></title><description><![CDATA[<p>[Edit] Falscher Code<br />
corvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121358</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 11:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 11:00:22 GMT]]></title><description><![CDATA[<p>Hex Wert:<br />
empfangen=true<br />
test= 00425D5F</p>
<p>Zu deinem anderen Prog: Ich wüßte nicht wie ich cout und cin ein einem BCB-Projekt benutzen kann. Ich bekomme zwar keine Fehler, aber es öffnet sich auch net das Standard Ein-Ausgabe-Fenster. Ich hab jetzt mal des ganze Prog von dir im Visual C++ (Version 6) gestartet. Ich hab auch keine Fehler, nur dass ich mit Esc net abrechen kann. Denke aber, dass da nur die Falsche Hexangabe das Prob ist.<br />
Vielmehr stört mich, dass wenn ich mit dem Prog Buchstaben sende, auch nichts empfange. Für das Empfangen habe ich weiterhin meine BDB Programm genommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121387</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 11:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 11:29:06 GMT]]></title><description><![CDATA[<p>... noch ne andere Frage:<br />
ist des normal, dass du iBytesWritten nichts zuweist?</p>
<pre><code>int send(unsigned char input) 
{ 
   DWORD iBytesWritten; /*&lt;-------------HIER*/
   // Variable für Sendezeichen------------------------------------- 
   unsigned char ucMsg;                     
   ucMsg = input; 
   WriteFile (hCom, &amp;ucMsg, 1, &amp;iBytesWritten, NULL); 
   return (0); 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1121415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121415</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 11:29:06 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 11:39:26 GMT]]></title><description><![CDATA[<p>Schau mal in der Hilfe nach; ist ein Return-Wert</p>
<p>sry für den falschen code(da fehlt die empfangsroutine)<br />
liefere ich aber nach;</p>
<p>corvin</p>
<p>PS: der Code ist nicht von mir, nur bearbeitet</p>
<p>nicht zu viel von mir verlangen, bin erst u-16</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121431</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 11:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 11:41:19 GMT]]></title><description><![CDATA[<p>ach so, das ist kein Hex-Wert der müsste etwa so aussehen:<br />
0x3D</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121434</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 11:41:19 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 11:59:28 GMT]]></title><description><![CDATA[<p>bist du sicher? Ich hatte auch was mit 0x erwartet. Aber des sind ja 4 Bytes (sind ja 4 char Elemente) die ich empfangen müste, von demher dachte ich dann schon, dass des mit 8Ziffern ok ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121454</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 11:59:28 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 12:34:43 GMT]]></title><description><![CDATA[<p>...so ich hab jetzt extra nochmal ein kleines Prog geschreiben, mit dem ich nur die Serielle Kommunikation testen kann. (davor war es einfach zu unübersichtlich) Und ich glaube jetzt funktioniert sogar die Übertragung. Leider nur noch nicht richtig. mit folgendem Programm:</p>
<pre><code>#include &lt;vcl.h&gt;
#pragma hdrstop
#include &quot;COM_PORT.h&quot;
#include &lt;cstdlib&gt;
#include &lt;windows.h&gt;            //fuer serielle Kommunikation
#include &lt;iostream&gt;           //fuer cout, cin
#include &lt;conio.h&gt;              //fuer Fkt. getch(), clrscr();
#include &lt;ctype.h&gt;              //fuer toupper()
#define COM_BUFFER_SIZE 16        // Read- und Write-Buffer-Size
HANDLE hCom;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
int TForm1::open_com()
{
   DCB           dcb;
   hCom = CreateFile (&quot;COM1&quot;, GENERIC_WRITE | GENERIC_READ, 0, NULL,
   OPEN_EXISTING, 0, NULL);
   // setzen der Blocklaenge, muss erfolgen--------------------------
   dcb.DCBlength = sizeof(DCB);
   // COM-Einstellungen laden----------------------------------------
   GetCommState (hCom, &amp;dcb);
   // Baudrate einstellen, hier 9600---------------------------------
   dcb.BaudRate  = 9600;
   // Datenbits einstellen, hier 8-----------------------------------
   dcb.ByteSize  = 8;
   // Paritaet einstellen, hier keine Paritaet-------------------------
   dcb.Parity    = NOPARITY;
   // Stopbits einstellen, hierv1------------------------------------
   dcb.StopBits  = ONESTOPBIT;
   // COM-Einstellungen speichern------------------------------------
   SetCommState (hCom, &amp;dcb);
   return 0;;
}
//---------------------------------------------------------------------------
int TForm1::close_com()
{
   CloseHandle (hCom);
   return (0);
}
//---------------------------------------------------------------------------
int TForm1::send(char input)
{
   DWORD iBytesWritten;
   // Variable für Sendezeichen-------------------------------------
   char ucMsg;
   ucMsg = input;
   WriteFile (hCom, &amp;ucMsg, 1, &amp;iBytesWritten, NULL);
   return (0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  //Sende-Modus
 char taste;
  // Aufruf Funktion open_com()----------------------------------------
  open_com();
//  strcpy(taste,Edit1-&gt;Text.c_str());
//taste=Edit1-&gt;Text.c_str();

char a[20]=&quot;&quot;;
const char *p;

p=Edit1-&gt;Text.c_str();
strcpy(a,p);
Memo1-&gt;Lines-&gt;Add(a);

  send(taste);
  close_com();
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  //Empfangs-Modus
  Memo1-&gt;Lines-&gt;Add(&quot;Empfangsmodus&quot;);
  Memo1-&gt;Lines-&gt;Add(TimeToStr(Time()));
    // Aufruf Funktion open_com()----------------------------------------
  static int i=0;
  if(i==0)
  {
  open_com();
  i++;
  }
  bool empfangen=true;
  char InString[22] = &quot;&quot;;
  InString[1]='a';
  AnsiString zeit=TimeToStr(Time());
  zeit=zeit.SubString(7,2);
  int zeit2=StrToInt(zeit);
  int zeit3=0;
  while(empfangen)
  {
    DWORD dwRead = 0;
    ReadFile (hCom, &amp;InString, sizeof (InString), &amp;dwRead, NULL);
    if (dwRead == 0)
    {
     InString[dwRead] = '\0';
     //Memo1-&gt;Lines-&gt;Add(InString);
    }
    else
    {
     Memo1-&gt;Lines-&gt;Add(InString);
     empfangen=false;
    }
    AnsiString temp=TimeToStr(Time());
    temp=temp.SubString(7,2);
    zeit3=StrToInt(temp);
    if(zeit2==zeit3-10)
      empfangen=false;
    //Memo1-&gt;Lines-&gt;Append(InString);
  }
  //Memo1-&gt;Lines-&gt;Append(InString);
  Memo1-&gt;Lines-&gt;Add(TimeToStr(Time()));
  Memo1-&gt;Lines-&gt;Add(&quot;Empfangsmodus beendet&quot;);
}
//---------------------------------------------------------------------------
</code></pre>
<p>stopt der Empfangsmodus wie gewollt und ich bekomme auch ein Zeichen auf dem Bildschirm ausgegeben. Leider ist es immer in &quot;.&quot; egal ob ich ein &quot;h&quot; oder ein &quot;a&quot; sende.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121494</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 12:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 12:39:30 GMT]]></title><description><![CDATA[<p>oder 0x12345678<br />
aber das 0x muss mit</p>
<p>corvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121498</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 12:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 12:56:08 GMT]]></title><description><![CDATA[<p>Hmm, also da wo ich schaue steht leider kein 0x, dann bin ich vielleicht doch falsch. Muss gleich nochmal schauen.<br />
...jo hab da glaub was falsch gemacht.<br />
Also bei meinem neuen Prog. wo immer der Punkt ausgegeben wird steht in allen Array-elementen ne 0x0 bis auf das erste, da steht 0x2E.(=dec 46) und das entspricht laut ASCII-Code-Tabelle dem Punkt. Also von demher ist das in Ordnung, ich glaube also, dass der Fehler beim Senden liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121520</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 12:56:08 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 13:04:21 GMT]]></title><description><![CDATA[<p>...ich bins nochmal. hab meinen Fehler gefunden, hab an einer Stelle eine Falsche Variable übergeben. (hab was wo rauskopiert und nicht geändert! <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="😉"
    /> )<br />
Hoffe dass ich jetzt auch alles in mein eigentliches Programm übertrgen bekommen.</p>
<p>Danke für deine Hilfe!</p>
<p>Kiki</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121529</guid><dc:creator><![CDATA[kiki_666]]></dc:creator><pubDate>Mon, 21 Aug 2006 13:04:21 GMT</pubDate></item><item><title><![CDATA[Reply to MS Windows Borland C++ builder V5 serielee Schnittstelle on Mon, 21 Aug 2006 13:26:50 GMT]]></title><description><![CDATA[<p>Gern geschehen</p>
<p>der Rabe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121556</guid><dc:creator><![CDATA[corvin1397]]></dc:creator><pubDate>Mon, 21 Aug 2006 13:26:50 GMT</pubDate></item></channel></rss>