Skocz do zawartości

Recommended Posts

Napisano

Witam!
Mam Problem z transmisja szeregowa. Odbieram dane z mikrokontrolera. To co mikrokontroler wysyla to: 'X', liczba1, liczba2, liczba3, liczba4, 'E', 'X', liczba1, liczba2, liczba3, liczba4, 'E', 'X', liczba1, liczba2 ... itd itd. Przez 'X' oznaczylem poczatek bloku danych, przez 'E' koniec a liczba_n to zmienne. To malo wazne ale napisze ze to dane z akcelerometru. Na liczbach 1..4 na biezaco wykonywane sa obliczenia i np rysowany jest wykres. No i problem polega na tym ze czasem dobrze odczytuje liczby a czasem nie.

case WM_CREATE:

hComm = CreateFile( TEXT("COM1"),
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);

BuildCommDCB("9600,n,8,1", &dcb);
SetCommState(hComm, &dcb);

return 0;

lpBuf=&AndevX;
Continue=TRUE;
Begin=FALSE;
i=0;
TimeOut=0;
fWaitingOnRead = FALSE;

case WM_PAINT:

while(Continue)
{
if (!fWaitingOnRead)
{
if (!ReadFile(hComm, lpBuf, 1, &dwRead, &osReader))
{
if (GetLastError() != ERROR_IO_PENDING)
MessageBox(hwnd,TEXT("Error in communications"),TEXT("Blad"),MB_ICONERROR|MB_OK);
else
fWaitingOnRead = TRUE;
}
}

if (Begin)
{
aX[i++]=AndevX;
if (AndevX=='E')
Continue=FALSE;
}

if (AndevX=='X')
Begin=TRUE;

if (TimeOut>=0x00ff)
Continue=FALSE;

TimeOut++;
}

hdc=BeginPaint(hwnd,&ps);
EndPaint(hwnd,&ps);

return 0;

Wiem ze nie powinno to byc raczej w WM_PAINT i pozniej pewnie nie bedzie ale narazie chce tylko to uruchomic.

Z gory dziekuje za pomoc.

  • 1 month later...
Napisano

Mialem podobny problem przyczyna byla blednie wypelniona struktura DCB sprawdz dokladnie ustawienia, bit parzystosci, bit stopu itp. Jak chcesz to moge podeslac pola calej struktury. Po drugie wykorzystaj program terminal dzieki ktoremy bedziesz mogl sprawdzic co odbierasz. Pozdrawiam

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...