В Android для последовательной связи я использую библиотеку USB Serial.
Мне нужна только функция esp8266 из esptoo.py, поэтому я преобразовал только функцию esp8266.
Из библиотеки UsbSerial я использую синхронный API, потому что esptool.py использует синхронную команду для последовательного чтения/записи.
Текущий проект хорошо работает с esp8266/FTDI, esp8266/cp2102 так же, как esptool.py.
Моя проблема не работает с esp8266/ch340.
Конечно, esptool.py хорошо работает с esp8266/ch340.
Но мой проект Android с ним не работает.
В Android основная команда, используемая в esptool.py, — это setDTR< /code>, setRTS, последовательное чтение и последовательная запись.
Каждая команда работает хорошо, хотя в esp8266/ch340 в обычном режиме (не загрузчик mode).
Кроме того, я подтвердил, что esp8266 может правильно работать в режиме загрузчика с помощью комбинации setDTR, setRTS.
Более правильно подтвердить режим загрузчика я могу с помощью Кнопка Flash и кнопка RST esp8266.

При использовании esp8266/ch340 я не могу пройти первый шаг с проектом Android.
Первым шагом является операция синхронизации. .
В Android вызовите команду записи с помощью https://github.com/espressif/esptool/wi ... ronisation, затем esp8266 — это ответ в байтах.
Основная проблема — невозможно прочитать ответную команду из esp8266.
Из UsbSerial есть syncRead, syncWrite команды, также есть асинхронная команда для последовательной работы.
esptool.py создан с использованием синхронного API. Итак, я использую синхронный API в Android project.
Также текущий проект прекрасно работает с esp8266/FTDI, esp8266/cp2102.
Так что, я думаю, основной алгоритм успешно конвертирован из esptool.pyНо, esp8266/ch340, текущий проект не работает.
В ходе отладки я подтвердил, что не могу прочитать ни одного байта из esp8266/ch340 в режиме загрузчика.
Для отладки я создал новый проект с использованием асинхронного API.
С помощью кнопки esp8266 создайте esp8266/ch340 code> режим загрузчика, я пишу команду синхронизации для esp8266.

Из https://github.com/espressif/esptool/wi ... l-Protocol, esp8266 отправляет ответную команду, но не может прочитать ответ в esp8266/ch340.
Но я обнаружил странные вещи.
После режима загрузчика напишите команду синхронизации и отключите USB от Android, после чего я увижу правильную команду ответа в момент отключения.
Если я напишу команду синхронизации 3 раза, то команда ответа 3 приходит в момент отключения.
Как я могу решить эту проблему?
Как я могу отлаживать esp8266 в режиме загрузчика ?
С точки зрения отладки, это основная проблема в esp8266/ch340(режим загрузчика).
Подробнее здесь: https://stackoverflow.com/questions/556 ... m-in-ch340