Lucrul cu portul com pe c în ferestre, blablacode

Porturi de serie cum ar fi dezvoltatorii pentru ușurința de întreținere și utilizare.

Și, desigur, scrie la programul de consolă este totul bine, dar vreau aplicarea lor pe care le apăsați tastele de pe ecran efectuează o acțiune dorită;)







În acest articol voi descrie modul de lucru cu portul COM în limba C ++.

Soluția este simplă, dar din anumite motive exemplul de lucru nu a fost găsit imediat. Pentru asta îl salvez aici.

Creați un nou proiect pentru consola Win32.

Includim fișiere antet:

Declarați comanda de com port:

Fac acest lucru la nivel global, pentru a nu deranja cu indicii atunci când îl dau unei funcții.

Apoi, vom începe să formulăm funcția principală:

Urăsc stilul de programare Windows. Au spus totul și au stat acolo să se bucure.

Lucrul cu porturile seriale din Windows trece ca un fișier. Deschideți primul port COM pentru scriere / citire:

Acum trebuie să configurați parametrii de conectare:

Pe msdn este recomandat să obțineți mai întâi parametrii, apoi să le schimbați. Tocmai învățăm, așa că facem așa cum cer ei.







Acum, declarați șirul pe care îl vom trece și variabilele necesare pentru aceasta:

Trimitem un șir. Permiteți-mi să vă reamintesc cel mai simplu exemplu, așa că nu fac nici o verificare specială:

De asemenea, am decis să dau pentru control mărimea șirului și numărul de octeți trimis:

La sfârșitul programului, facem un ciclu de citire infinit de date:

Acum, funcția de citire:

Acesta este de fapt întregul exemplu.

Am creat un port virtual virtual. Și trimis de la COM1 la COM2:

Lucrul cu portul com pe c în ferestre, blablacode

Din programul nostru a fost trimis "Hello from C ++", și de la terminalul "hello how2.org.ua".

Bună ziua, am câteva probleme: portul COM nu vrea să funcționeze. De la început, m-am uitat ca și cum aș fi fost un ceainic. Dar nu aici - a fost! Am încercat să scriu cod de multe ori. În final, tocmai am descarcat exemplul (nu mai aveam ocazii). Și ce? Rulați programul din exemplul respectiv (fără a schimba codul) și încă nu funcționează! Sunt afișate numai erorile. Scuze expresia, prost? Sau este ceva în neregulă cu mine? Vă mulțumim anticipat!

Mulțumesc. Poate că singurul cod care a terminat cu o lovitură de la jumătate.

15 octeți trimiși. o)

Și este posibil să se facă fără o buclă infinită, dar pentru a face față evenimentului de apariție a datelor pe portul COM? Deoarece cred că acest ciclu petrece o mulțime de resurse și că ceva mai serios de a face cu acest exemplu nu va funcționa.







Articole similare

Trimiteți-le prietenilor: