Primirea și transferul de numere dublu-byte de către uart!

Prompt te rog cine stie, am nevoie pentru a transmite și primi între PC și numerele de dublu-byte controler. A decis să meargă pe această cale, programul imparte numarul PC-octet în octeții superioare și inferioare și le trimite pe cineva port.Kontroller primește aceste două octeți, li se alătură în chislo.V dublu-octet în funcție de numărul de programe MC formează un alt număr de dublu-octet, rupe-l în vechiul și cel mai mic byte și le trimite înapoi la portul com. Programul funcționează într-un ciclu, PC-MC-PC și așa mai departe ad infinitum. Iată ce am primit:

Prin urmare, întrebarea, poate cineva să știe cel mai bun mod de a implementa această sarcină?

De exemplu, luăm două numere H1F (37) și HFA (250), urmând unul după celălalt.
Putem obține fie (256 * MSB) + LSB = (256 * 37) + 250 = 9722
sau (256 * LSB) + MSB = (256 x 250) + 37 = 64037

atunci este mai bine să introduceți octetul de pornire al transmisiei, de exemplu, H55 și suma de control
Noi luăm byte în octet într-o serie de 4 octeți
dacă primul octet H55, începeți să scrieți la un octet de array de byte
după primirea tuturor octeților de date + 1 (suma de control) [H1F HFA H], începem să numărăm algoritmul, să spunem, primul octet este adăugat la al doilea, dacă este mai mult HFF, apoi scade din ea HFF, comparați cu suma de control (H1A). totul sa întâmplat - apoi folosim aceste date. dacă nu, resetați matricea și treceți la acceptarea celor noi
Sumă de control = HFF - (H1F + HFA) = H1A

De exemplu, luăm două numere H1F (37) și HFA (250), urmând unul după celălalt.
Putem obține fie (256 * MSB) + LSB = (256 * 37) + 250 = 9722
sau (256 * LSB) + MSB = (256 x 250) + 37 = 64037

atunci este mai bine să introduceți octetul de pornire al transmisiei, de exemplu, H55 și suma de control
Noi luăm byte în octet într-o serie de 4 octeți
dacă primul octet H55, începe să scrie la un octet de array byte
după primirea tuturor octeților de date + 1 (suma de control) [H1F HFA H], începem să numărăm algoritmul, să spunem, primul octet este adăugat la al doilea, dacă este mai mult HFF, apoi scade din ea HFF, comparați cu suma de control (H1A). totul sa întâmplat - apoi folosim aceste date. dacă nu, resetați matricea și treceți la acceptarea celor noi
Sumă de control = HFF - (H1F + HFA) = H1A


Algotim pare a fi de înțeles, bine, pentru că este frumos să schimbi în bască, adică, cât de frumos să accept și să transmită, nu știu.