Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom - odczyt po UART bez CR i LF

rekinisko 19 Lis 2017 00:50 402 0
  • #1 19 Lis 2017 00:50
    rekinisko
    Poziom 22  

    Witam. Proszę o podpowiedź jak najprościej odebrać i okiełznać ramkę danych po uarcie. Ramka ma stałą długość 32 bajtów, niestety nie występuje w niej znak końca linii, nie ma CR i nie ma LF. Doczytuję sobie tą ramkę tak:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    Czekam na dwa znaki o stałej wartości i jeśli wystąpią po sobie to odczytuję resztę komendą inputbin. No i mi odczytuje ... odczytuje jak chce, nie zawsze startuje od miejsca w którym powinien. Nawet by to było do przyjęcia bo połowa odczytów jest trafiona od początku, mam opcję by sprawdzać sumę kontrolną. No ale tu znów schody. Ramka domyślnie jest wysyłana jako wartości hex i to w połączeniu po dwa bajty. Bascom oczywiście rozdziela te dwa bajty na pojedyńcze i dodatkowo zamienia wartość z hex na dec. A ja muszę operować na hex choćby po to by je wszystkie zsumować i sprawdzić sumę kontrolną. Przykładowy wycinek dwóch bajtów 12 34 powinienem zsumować do wartości word 1234 i dopiero przeliczyć na dec czyli otrzymać 4660 i to jest wartość która mnie interesuje. Bascom podaje mi 18 i 52 ... Kolejny problem to zera odczytany bajt 00 bascom zamienia na 0.

    0 0