Всем привет. Столкнулся с проблемой связки flprog823 и крайнего nextion1651.
При получении значения "-1" из поля number от nextion и передачи его по uart 115200 в flprog esp32 я получаю число 16770 и реже 65534 на esp32.
Я спросил у GPT4o и он частично прояснил ситуацию:
[spoiler]Если Nextion передает значение как 16-битное число без знака, то отрицательное число преобразуется в unsigned integer.
1. Значение -1:
- В 16-битном signed представлении -1 это 0xFFFF.
2. Преобразование в unsigned:
- Интерпретируя 0xFFFF как unsigned integer, получаем 65535.
3. Проблема с передачей/получением:
- На стороне ESP32 может быть разная интерпретация данных (например, перепутаны биты).
- В некоторых системах используется мультим байтов, и значение может быть разбито на 2 байта.
4. Потенциальная ошибка:
- Значение 0x41FE в 16-ричном формате — это 16770 в десятичной системе.
- Возможно ошибка с byte-endian или пересчет значений в ESP32 после получений данных от Nextion.
### Что делать?
1. Проверить кодировку:
- Убедитесь, что данные передаются и принимаются правильно, с учетом sign-extension и byte order (big-endian/little-endian).
Правильно я понимаю что нашёл баг во взаимодействии nextion и flprog или я ЧДНТ? Как это потенциально можно победить?[/spoiler]
Баг uart nextion esp32 или я ЧДНТ?
-
- Полковник
- Сообщения: 4006
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Баг uart nextion esp32 или я ЧДНТ?
В чем вопрос?Iqubik писал(а): 03 июн 2024, 20:57 Всем привет. Столкнулся с проблемой связки flprog823 и крайнего nextion1651.
При получении значения "-1" из поля number от nextion и передачи его по uart 115200 в flprog esp32 я получаю число 16770 и реже 65534 на esp32.
Я спросил у GPT4o и он частично прояснил ситуацию:
Используйте версию Nextion ecoins - она с набором улучшений вощла в новые версии FLProg 9.0.x.
С уважением, ecoins.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя