<?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[Probleme mit Stop Bits]]></title><description><![CDATA[<p>Hallo,<br />
ich habe bei der seriellen Kommunikation Probleme bei den Stop-Bits.</p>
<p>Wenn ich das Programm starte,wähle ich z.B. 1 Stop-Bit aus. -&gt; Program OK</p>
<p>Dann ändere ich auf 2 Stop-Bits -&gt; Programm OK</p>
<p>Ab jetzt funzt es nur noch mit 2 Stop-Bits. SetCommState schlägt sonst immer fehl.</p>
<p>Vielleicht könnt ihr mir helfen.</p>
<p>VS2005:</p>
<pre><code class="language-cpp">BOOL CSerial::Open()
{

	if( m_bOpened ) return( TRUE );

	char szPort[15];

        DCB dcb;
	FillMemory(&amp;dcb, sizeof(dcb), 0);

	wsprintf( szPort, &quot;COM%d&quot;, m_nPortNumber );

	m_hIDComDev = CreateFile( szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL );

	if( m_hIDComDev == INVALID_HANDLE_VALUE ) return( FALSE );

	memset( &amp;m_OverlappedRead, 0, sizeof( OVERLAPPED ) );
 	memset( &amp;m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );

	m_OverlappedRead.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
	m_OverlappedWrite.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );

	// Get the default port setting information
	GetCommState( m_hIDComDev, &amp;dcb );

	// Change the DCB structure settings
	dcb.BaudRate = m_nBaudRate;			// Current baud
	dcb.ByteSize = m_nDataBits;			// Number of bits/byte, 4-8 
	dcb.Parity = m_nParity;				// 0-4=no,odd,even,mark,space 
	dcb.StopBits = m_nStopBit;			// 0,1,2 = 1, 1.5, 2

	if( !SetCommState( m_hIDComDev, &amp;dcb )  )
	{
		DWORD dwError = GetLastError();
		if( m_OverlappedRead.hEvent != NULL ) CloseHandle( m_OverlappedRead.hEvent );
		if( m_OverlappedWrite.hEvent != NULL ) CloseHandle( m_OverlappedWrite.hEvent );
		CloseHandle( m_hIDComDev );
		return( FALSE );
	}

	m_bOpened = TRUE;
	return( m_bOpened );

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/181479/probleme-mit-stop-bits</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 00:55:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181479.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 May 2007 10:08:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Stop Bits on Mon, 14 May 2007 10:08:32 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe bei der seriellen Kommunikation Probleme bei den Stop-Bits.</p>
<p>Wenn ich das Programm starte,wähle ich z.B. 1 Stop-Bit aus. -&gt; Program OK</p>
<p>Dann ändere ich auf 2 Stop-Bits -&gt; Programm OK</p>
<p>Ab jetzt funzt es nur noch mit 2 Stop-Bits. SetCommState schlägt sonst immer fehl.</p>
<p>Vielleicht könnt ihr mir helfen.</p>
<p>VS2005:</p>
<pre><code class="language-cpp">BOOL CSerial::Open()
{

	if( m_bOpened ) return( TRUE );

	char szPort[15];

        DCB dcb;
	FillMemory(&amp;dcb, sizeof(dcb), 0);

	wsprintf( szPort, &quot;COM%d&quot;, m_nPortNumber );

	m_hIDComDev = CreateFile( szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL );

	if( m_hIDComDev == INVALID_HANDLE_VALUE ) return( FALSE );

	memset( &amp;m_OverlappedRead, 0, sizeof( OVERLAPPED ) );
 	memset( &amp;m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );

	m_OverlappedRead.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
	m_OverlappedWrite.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );

	// Get the default port setting information
	GetCommState( m_hIDComDev, &amp;dcb );

	// Change the DCB structure settings
	dcb.BaudRate = m_nBaudRate;			// Current baud
	dcb.ByteSize = m_nDataBits;			// Number of bits/byte, 4-8 
	dcb.Parity = m_nParity;				// 0-4=no,odd,even,mark,space 
	dcb.StopBits = m_nStopBit;			// 0,1,2 = 1, 1.5, 2

	if( !SetCommState( m_hIDComDev, &amp;dcb )  )
	{
		DWORD dwError = GetLastError();
		if( m_OverlappedRead.hEvent != NULL ) CloseHandle( m_OverlappedRead.hEvent );
		if( m_OverlappedWrite.hEvent != NULL ) CloseHandle( m_OverlappedWrite.hEvent );
		CloseHandle( m_hIDComDev );
		return( FALSE );
	}

	m_bOpened = TRUE;
	return( m_bOpened );

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1284521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1284521</guid><dc:creator><![CDATA[noize]]></dc:creator><pubDate>Mon, 14 May 2007 10:08:32 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Stop Bits on Mon, 14 May 2007 10:13:21 GMT]]></title><description><![CDATA[<p>Zu erwähnen noch:</p>
<p>Wird das Programm aus VS2005 heraus gestartet funzt es</p>
<p>Wird das Programm selber durch doppelkl. aufgerufen funzt es nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1284524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1284524</guid><dc:creator><![CDATA[noize]]></dc:creator><pubDate>Mon, 14 May 2007 10:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Stop Bits on Mon, 14 May 2007 11:22:01 GMT]]></title><description><![CDATA[<p>Ich rate Dir den DCB *immer* komplett zu setzen! Woher willst Du wissen, dass der &quot;Default-Wert&quot; dem entspricht was Du willst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1284556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1284556</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 14 May 2007 11:22:01 GMT</pubDate></item></channel></rss>