eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaesp8266 64bajty buforu? Dlaczego to sie sypie?esp8266 64bajty buforu? Dlaczego to sie sypie?
  • X-Received: by 10.36.69.103 with SMTP id y100mr225990ita.0.1499812421340; Tue, 11 Jul
    2017 15:33:41 -0700 (PDT)
    X-Received: by 10.36.69.103 with SMTP id y100mr225990ita.0.1499812421340; Tue, 11 Jul
    2017 15:33:41 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    188no37937itx.0!news-out.google.com!s132ni93itb.0!nntp.google.com!188no37931itx
    .0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Tue, 11 Jul 2017 15:33:40 -0700 (PDT)
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.5.31.134;
    posting-account=jnRHMAoAAACB5EawItMhNTZMy_yOF2XE
    NNTP-Posting-Host: 83.5.31.134
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <2...@g...com>
    Subject: esp8266 64bajty buforu? Dlaczego to sie sypie?
    From: s...@g...com
    Injection-Date: Tue, 11 Jul 2017 22:33:41 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:720755
    [ ukryj nagłówki ]

    Ten kawałek kodu:
    void loop() {
    String dht_out;
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    if (isnan(h) || isnan(t)) {
    dht_out="No DHT!";
    } else {
    dht_out="TD="+String(t,1)+" HD="+String(h,1);
    }
    lcd.setCursor(0, 0);
    lcd.print("TB="+String(bmp.readTemperature(),1)+"PB=
    "+String(bmp.readPressure()/100)+" ");
    lcd.setCursor(0, 1);
    lcd.print(dht_out);

    delay(500);

    //Komunikacja z esp do debuga
    String tmp="";
    while (Serial.available()>0) {
    char inByte=Serial.read();
    tmp+=inByte;
    }
    if (tmp.length()>0) {
    DebugSerial.print(tmp);
    }


    //komunikajca z debuga do esp
    while (DebugSerial.available()>0) {
    char outByte=DebugSerial.read();
    Serial.write(outByte);
    }
    }

    Ma słuzyc narazie tylko jako interfejs przerzucający dane między jednym a drugim
    serialem.
    I dziala prawie dobrze.
    Problemem jest mianowicie przycinanie wyniku do 64bajtów.
    Mimo że kopiuje po kolei bajty z Serial za pomoca Serial.read to po 64 sztukach petla
    while sie konczy a po drugim przejsciu ogólnej petli juz nic nie czyta.

    Po zwiększeniu bufora do 164 w pliku HardwareSerial.h wczytuje sie więcej.

    Co robie nie tak?
    Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle wolne ze przy 115200
    wczytanie 64 trwa tyle ze mi sie bufor od nowa napełni?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: