<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=60&amp;t=11540&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-29T22:21:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=60&amp;t=11540&amp;mode</id>
<entry>
<author><name><![CDATA[lukasz.wy]]></name></author>
<updated>2015-04-29T22:21:54+01:00</updated>
<published>2015-04-29T22:21:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11540&amp;p=127808#p127808</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11540&amp;p=127808#p127808"/>
<title type="html"><![CDATA[C++ RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11540&amp;p=127808#p127808"><![CDATA[
<span style="color: #8000BF">Witam!</span><br /><br />Mam problem odnośnie obsługi RS232 na PC. Nie wiem jak odczytać przychodzące dane z Atmega8 nie blokując całego programu na PC. <br />Dokładniej chodzi mi o to, żeby zrobić takie przerwanie, gdy jakieś dane przychodzą z mikroprocesora obsługuje to, wyświetlając na ekranie a gdy danych przychodzących brak to program wykonuje jakieś inne zadanie.<br /><br />Z góry dziękuje za pomoc i wszelkie sugestie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Pozdrawiam.<br />[syntax=cpp]#include &quot;stdafx.h&quot;<br />#include &lt;cstdlib&gt;<br />#include &lt;iostream&gt;<br />#include &lt;Windows.h&gt;<br /><br /><br />using namespace std;<br /><br /><br />int _tmain(int argc, _TCHAR* argv&#91;&#93;)<br />{<br />int bStatus;<br />char bufor;<br /><br />DWORD ilosc_bajtow_do_odczytu = 1;<br />LPDWORD ilosc_bajtow_odczytana = 0;<br /><br /><br />DCB dcb;<br />HANDLE UchwytPortu;<br />LPSTR NumerPortu = &quot;COM3&quot;;<br /><br />UchwytPortu = CreateFile(NumerPortu, GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);<br /><br />if (UchwytPortu == INVALID_HANDLE_VALUE)<br />{<br />cout &lt;&lt; &quot;INVALID_HANDLE_VALUE&quot; &lt;&lt; endl;<br /><br />}<br /><br />dcb.DCBlength = sizeof(dcb);<br />dcb.BaudRate = CBR_19200;<br />dcb.fParity = FALSE; //sprawdzanie przystości<br /><br />dcb.StopBits = ONESTOPBIT; //jeden bit stopu<br />dcb.ByteSize = 8; //osiem bitów danych <br /><br />dcb.fDtrControl = DTR_CONTROL_DISABLE;<br />dcb.fRtsControl = RTS_CONTROL_DISABLE;<br /><br />dcb.fOutxCtsFlow = FALSE;<br />dcb.fOutxDsrFlow = FALSE;<br />dcb.fDsrSensitivity = FALSE;<br />dcb.fAbortOnError = FALSE;<br />dcb.fOutX = FALSE;<br />dcb.fInX = FALSE;<br />dcb.fErrorChar = FALSE;<br />dcb.fNull = TRUE; //odrzucanie uszkodzonych danych<br /><br />SetCommState(UchwytPortu, &amp;dcb); //otwarcie portu<br /><br /><br /><br /><br />ReadFile(UchwytPortu, &amp;bufor, ilosc_bajtow_do_odczytu, ilosc_bajtow_odczytana, NULL);<br /><br /><br /><br /><br /><br />CloseHandle(UchwytPortu); //zamknięcie portu<br />system(&quot;PAUSE&quot;);<br />return EXIT_SUCCESS;<br />return 0;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9637">lukasz.wy</a> — 29 kwi 2015, o 22:21</p><hr />
]]></content>
</entry>
</feed>