Transmisja via RS232 z wykorzystaniem WinAPI

0

Witam!
Sytuacja wyglada nastepujaco.. zrobilem uklad mikrokontrolera, zaprogramowalem, by odbijal znaki, ktore odbierze. Zatem po wyslaniu 'A' powinienem dostac 'A'. I tak jest w przypadku gdy korzystam z hyperterminala, a wiec uklad mikrokontrolera jest sprawny i to nie on jest powodem problemow. Jezeli probuje wysylac znak przy uzyciu wlasnej aplikacji opartej o funkcjie API takie jak CreateFile, WriteFile oraz ReadFile odbieram go w dwoch kopiach, czyli wysylam 'A', dostaje 'A', dalej wysylam 'B', ale dostaje z powrotem 'A' i tak kazdy znak w dwoch kopiach. Jestem prawie pewien, ze wysylanie i odbieranie wykorzystuje ten sam bufor, a ja odbieram raz znak ktory chcialem wyslac, a drugi raz znak ktory wysyla mikrokontroler. Sytuacja taka jest opisana w ksiazce "RS232 praktyczne programowanie", gdzie autor zaleca stosowanie pomiedzy funkcjami WriteFile i ReadFile funkcji FlushFileBuffers, oprozniajacej bufor. Tak tez zrobilem, ale nie przynioslo to zadnego efektu. Okazalo sie, ze funkcja sie nie wykonuje, tj zwraca 0 lub FALSE. Uzywajac GetLastError otrzymalem kod bledu 50, jest to ERROR_NOT_SUPPORTED, czyli "The network request is not supported". Ma ktos moze pomysl, dlaczego tak jest? Od razu moze zaznacze, ze przy CreateFile dalem flage GENERIC_WRITE. Z gory dziekuje za pomoc i pozdrawiam!

0

Daj ten post na forum Elektroniki praktycznej. Tam od groma ludzi bawi się RS'ami. Miałem kiedyś artykuł Jerzego Szczesiula z EP na temat programowania RS w WIN API. Tam go znajdziesz i może on odpowie na Twoje pytania.

0

Dziekuje za rade, pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1