<?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[Programmierung der USB-Schnittstelle]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte ein kleines Konsolenprogramm schreiben, das die NMEA-Daten eines Garmin GPS-Gerätes über die USB Schnittstelle ausliest und auf der Konsole anzeigt. Über die serielle Schnittstelle hat das bereits funktioniert.<br />
Beim Öffnen des USB-Ports und anschließendem Aufruf der Funktion &quot;ReadFile()&quot; hängt sich das Programm allerdings auf. Weiß jemand warum? Der Port ist auf jeden Fall geöffnet. Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;Windows.h&gt;
#include &lt;iostream&gt;
#include &quot;conio.h&quot;

using namespace std;

int main()
{
	HANDLE hComm;
	DWORD dwRead = 0;
	char chRead;

	hComm = CreateFile (&quot;\\\\.\\USB#Vid_091....}&quot;,
			        GENERIC_READ | GENERIC_WRITE,
				0,
				0,
				OPEN_EXISTING,
				FILE_ATTRIBUTE_NORMAL,
				NULL);

	if (INVALID_HANDLE_VALUE != hComm)
		cout &lt;&lt; &quot;open&quot;;
	else
		cout &lt;&lt; &quot;not open&quot;;

	ReadFile(hComm, &amp;chRead, 1, &amp;dwRead, NULL);

	cout &lt;&lt; endl &lt;&lt; chRead;
	getch();

	return 0;
}
</code></pre>
<p>Ich habe es auch schon über die Funktion</p>
<pre><code class="language-cpp">DeviceIoControl( hComm, ??????, pIn, sizeof(szIn), pOut,
                        sizeof(szOut), lpByte, NULL );
</code></pre>
<p>probiert, weiß jedoch die Funktionsnummer (I/O-Control-Code) nicht. Hat jemand ne Ahnung wie man diese Nummer heraus bekommt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165218/programmierung-der-usb-schnittstelle</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 02:47:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165218.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Nov 2006 16:18:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programmierung der USB-Schnittstelle on Thu, 16 Nov 2006 16:18:08 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte ein kleines Konsolenprogramm schreiben, das die NMEA-Daten eines Garmin GPS-Gerätes über die USB Schnittstelle ausliest und auf der Konsole anzeigt. Über die serielle Schnittstelle hat das bereits funktioniert.<br />
Beim Öffnen des USB-Ports und anschließendem Aufruf der Funktion &quot;ReadFile()&quot; hängt sich das Programm allerdings auf. Weiß jemand warum? Der Port ist auf jeden Fall geöffnet. Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;Windows.h&gt;
#include &lt;iostream&gt;
#include &quot;conio.h&quot;

using namespace std;

int main()
{
	HANDLE hComm;
	DWORD dwRead = 0;
	char chRead;

	hComm = CreateFile (&quot;\\\\.\\USB#Vid_091....}&quot;,
			        GENERIC_READ | GENERIC_WRITE,
				0,
				0,
				OPEN_EXISTING,
				FILE_ATTRIBUTE_NORMAL,
				NULL);

	if (INVALID_HANDLE_VALUE != hComm)
		cout &lt;&lt; &quot;open&quot;;
	else
		cout &lt;&lt; &quot;not open&quot;;

	ReadFile(hComm, &amp;chRead, 1, &amp;dwRead, NULL);

	cout &lt;&lt; endl &lt;&lt; chRead;
	getch();

	return 0;
}
</code></pre>
<p>Ich habe es auch schon über die Funktion</p>
<pre><code class="language-cpp">DeviceIoControl( hComm, ??????, pIn, sizeof(szIn), pOut,
                        sizeof(szOut), lpByte, NULL );
</code></pre>
<p>probiert, weiß jedoch die Funktionsnummer (I/O-Control-Code) nicht. Hat jemand ne Ahnung wie man diese Nummer heraus bekommt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176074</guid><dc:creator><![CDATA[Neo2345]]></dc:creator><pubDate>Thu, 16 Nov 2006 16:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to Programmierung der USB-Schnittstelle on Sat, 25 Nov 2006 16:24:43 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=2822" rel="nofollow">SideWinder</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=13" rel="nofollow">DOS und Win32-Konsole</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181319</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 25 Nov 2006 16:24:43 GMT</pubDate></item><item><title><![CDATA[Reply to Programmierung der USB-Schnittstelle on Sat, 25 Nov 2006 17:09:24 GMT]]></title><description><![CDATA[<p>Wie meinst Du &quot;über die serielle Schnittstelle hat es bereits funktioniert&quot;?<br />
Warum willst Du es dann anders machen?<br />
Es gibt keinen Weg USB-Geräte direkt anzusprechen... Du musst immer über einen Geräte-Treiber gehen... i.d.R. ist dies für solche Geräte eine emulierte serielle Schnittstelle...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181352</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 25 Nov 2006 17:09:24 GMT</pubDate></item></channel></rss>