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

[Rozwiązano] ESP8266: Jak zapisać/odczytać string do/z EEPROM? Błąd typu danych

samolot123456747 01 Lip 2020 09:35 1377 8
  • #1 18792822
    samolot123456747
    Poziom 3  
    Posty: 91
    Ocena: 14
    Dzień dobry, chciałem zapisać i odczytać sobie wartość string do eeprom w esp8266, ale odczyt:
    
    const char * mqtt_ip_server;
    
    mqtt_ip_server = EEPROM.read(5);
    

    Pokazuje tylko błąd (zapis pewnie też by powodował, dlatego go tutaj nie dodałem)
    
    nie można przypisać wartości typu "uint8_t" do jednostki typu "const char *"
    


    Nie do końca wiem, jak z tym sobie poradzić.

    Proszę o pomoc, z góry dziękuję
  • Pomocny post
    #2 18792839
    viayner
    Poziom 43  
    Posty: 10609
    Pomógł: 1559
    Ocena: 2032
    Witam,
    bez wzgledu na platforme EEPROM jak kazda inna pamiec "przyjmuje" wartosci Byte, jezeli kompilator automatycznie nie zmienia char na byte to zorb to recznie a przy odczycie odtworz char.
    Pozdrawiam
  • #3 18792842
    samolot123456747
    Poziom 3  
    Posty: 91
    Ocena: 14
    Dzięki, ale jak to zrobić?(jest to mój pierwszy skrypt na arduino więc jakiś prawniczej by się przydał :))
  • Pomocny post
    #4 18792859
    Konto nie istnieje
    Poziom 1  
  • #5 18792886
    samolot123456747
    Poziom 3  
    Posty: 91
    Ocena: 14
    Zależy mi na tym, aby odczytać np. 192.168.1.1 albo np. login, oraz aby te dwa elementy zapisać(oczywiście do osobnych zmiennych). Wydaje mi się, że ten link będzie ok.

    Dodano po 57 [minuty]:

    Mam jeszcze jedno pytanie, jak przekonwertować string na "const char * ", ponieważ potrzebuję użyć const char *, a nie string. (Nie da się użyć string). Chodzi o konwersje przy odczycie, bo przy zapisie wszystko działa ok.
  • #7 18793008
    samolot123456747
    Poziom 3  
    Posty: 91
    Ocena: 14
    Bardzo dziękuję. Dodatkowo, po wrzuceniu kodu ze stronki: https://mindeon.com/posts/coding-journal/read-write-eeprom/ w funkcji writestring linia 4 jest identyfikator _size. Mój edytor pokazywał błąd, więc zmieniłem na Stringsize i nie było błędu. Czy to ma teraz prawo działać(chodzi o zapis)?
  • Pomocny post
    #8 18793026
    Konto nie istnieje
    Poziom 1  
  • #9 18793027
    samolot123456747
    Poziom 3  
    Posty: 91
    Ocena: 14
    Bardzo dziękuję za pomoc.

Podsumowanie tematu

✨ Użytkownik ma problem z zapisem i odczytem wartości typu string do EEPROM w module ESP8266. Otrzymuje błąd związany z niezgodnością typów danych, próbując przypisać wartość typu uint8_t do wskaźnika const char*. Odpowiedzi sugerują, że EEPROM przechowuje dane w formie bajtów, a użytkownik powinien ręcznie konwertować dane. Wskazówki obejmują użycie metody c_str() do konwersji string na const char*. Użytkownik również pyta o poprawność zmiany identyfikatora w kodzie, co zostało potwierdzone jako błąd w źródle.
Wygenerowane przez model językowy.
REKLAMA