nebraska Napisano 21 listopada Udostępnij Napisano 21 listopada Witajcie Panowie nie ogarniam tego chciałem zrobić prosty test i sprawdzić działanie biblioteki Lora E32. Gdy podłącze dwa wemosy jako nadajnik i odbiornik wszystko działa. Dane ze struktury wysyła i odbiera. Jeśli zmienię w odbiorniku z wemosa na Attiny 3226 to ucina mi dane. Dostaje tylko wilgotność, a temp to już jakieś bzdury typu -1054478.00 Attiny3226 ma dwa seriale sprzętowe sprawdzałem wszytko software serial i seriale sprzętowe i dalej to samo. Nie wiem gdzie szukać przyczyny. Poniżej prymitywny kod żeby spr działanie. Nadajnik #include "Arduino.h" #include "LoRa_E32.h" LoRa_E32 e32ttl(4, 5); // wemos d1 mini RX, TX struct weatherData { int humidity; float temp; }; weatherData currentWeather; void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB } delay(100); pinMode(14, INPUT_PULLUP); e32ttl.begin(); } void loop() { if(digitalRead(14) == LOW){ delay(500); currentWeather.humidity = 56; currentWeather.temp = 23.6; Serial.println(currentWeather.humidity); Serial.println(currentWeather.temp); ResponseStatus rs = e32ttl.sendFixedMessage(0, 2, 23, ¤tWeather, sizeof(currentWeather)); delay(200); }} //--------------------------------------------------------------------------------------------------------------------------------------------------- Odbiornik #include "Arduino.h" #include "LoRa_E32.h" LoRa_E32 e32ttl(&Serial1); struct weatherData { int humidity; float temperature; }; void setup() { Serial1.swap(1); Serial1.begin(9600); Serial.begin(9600); pinMode(PIN_PA2, INPUT_PULLUP); pinMode(PIN_PB5, OUTPUT); digitalWrite(PIN_PB5, HIGH); while (!Serial) { ; // wait for serial port to connect. Needed for native USB } delay(100); e32ttl.begin(); // --------------------------- } void loop() { //if(digitalRead(PIN_PA2) == LOW ){ // delay(10); if (e32ttl.available() > 1 ){ ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(weatherData)); weatherData currentWeather = *(weatherData*) rsc.data; delay(200); Serial.print("Humidity: "); Serial.println(currentWeather.humidity); Serial.print("Temperature: "); Serial.println(currentWeather.temperature); } } Link do komentarza Share on other sites More sharing options...
_LM_ 21 listopada Udostępnij 21 listopada (edytowany) https://stackoverflow.com/questions/11770451/what-is-the-meaning-of-attribute-packed-aligned4 Być może będziesz musiał zmienić wyrównanie do 4 ewentualnie dodaj do struktury zmienna uint16_t Edytowano 21 listopada przez _LM_ 1 Link do komentarza Share on other sites More sharing options...
nebraska 21 listopada Autor tematu Udostępnij 21 listopada _LM_ jesteś Wielki zmiana na uint16_t rozwiązała problem. Dziękuję! Dziękuję za link muszę poczytać o tym. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »