logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Programowanie portów równoległych i szeregowych.

dexter1 10 Lis 2006 20:34 1562 3
  • #1 3210147
    dexter1
    Poziom 14  
    Posty: 143
    Ocena: 1
    Witam, chciałbym się dowiedzieć w jaki sposób można zaprogramować w Dev c++ na porcie szeregowym i równoległym dowolny pin na dowolny stan.
  • Pomocny post
    #2 3219564
    Arutim
    Poziom 20  
    Posty: 347
    Pomógł: 18
    Ocena: 37
    W szeregowym z dowolnym pinem to mozesz miec nie maly problem bo niektore koncowki sa wejsciami. W lpt jest troszke inaczej choc napewno nie wszystkimi pinami bedziesz mogl sterowac. Jezeli chodzi o programowa obsluge portu szeregowego winxp to jest cos takiego jak WinAPI i bardzo dobrze dziala, natomiast jezeli chodzi o port rownolegly to pojawia sie problem z bezposrednim dostepem do niego i nalezy korzystac z wtyczek (pluginow(dll'i)) ladowanych czy to statycznie czy dynanamiczne, to juz zalezy od Ciebie(jedna metoda ma swoje wady i zalety i druga ma swoje plusy i minusy, musisz sobie dobrac) Dobra wtyczyka(korzystalem z niej pod Delphi) jest dllportio (do znalezienia w necie), dzieki temu mozesz uzyskac dostep nie tylko do rownoleglego ale takze do innych urzadzen.

    Pozdrawiam.

    P.S. troszke zamotalem ale mam nadzieje ze zrozumiesz
  • #3 3219993
    dexter1
    Poziom 14  
    Posty: 143
    Ocena: 1
    Tak zrozumiałem, ale mi chodzi o kawałek kodu dzięki któremu sobie będę mógł załapać jak to robić.
  • Pomocny post
    #4 3220433
    Arutim
    Poziom 20  
    Posty: 347
    Pomógł: 18
    Ocena: 37
    PORT SZEREGOWY
    Kawałek kodu:
    w deklaracjach zmiennych dajesz:
    #define cbOutQueue 64;
    #define cbInQueue 64;

    LPCTSTR lpfilename; //nazwa portu np. COM1
    DCB dcb;
    HANDLE hCommDev;


    W procedurce otwarcia portu;
    {
    hCommDev = CreateFile (lpFileName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0 , NULL); //otwiera port

    if (hCommDev != INVALID_HANDLE_VALUE) //sprawdza prawidlowosc otwarcia portu
    SetupComm (hCommDev, cbInQueue, cbOutQueue);
    dcb.DCBlenght = sizeof(dcb);
    GetCommState (hCommDev, &dcb);
    . //tutaj flagi sterujace dcb predkosc, parzystosc itp itd
    .
    .
    .
    .
    .
    SetCommState(hCommDev, &dcb); }

    to tyle jezeli chodzi o otwarcie

    Dasz sobie rade dalej ? w razie czego to pisz na pw
REKLAMA