我正在尝试将开源Python项目esptool.py转换为Android(java)项目。
在android中,对于串行通信,我使用USB Serial库。
我只需要 esptoo.py
中的
esp8266功能,所以我只转换了 esp8266 函数。
从 UsbSerial 库,我使用 synchronous api,因为 esptool.py 使用同步命令进行串行 read/write。
当前项目与 esp8266/FTDI、esp8266/cp2102 运行良好,与
esptool.py
相同。esp8266/ch340
。esp8266/ch340
配合得很好。setDTR
、setRTS
、serial Read
和 serial Write
。
尽管在正常模式(不是引导加载程序模式)下,每个命令都运行良好。另外,我确认了 esp8266 可以通过 setDTR、setRTS 的组合正确进入引导加载程序模式。
更正确地确认bootloader模式,我可以使用esp8266的esp8266/ch340
和
Flash button
。 调用 write 命令,然后 esp8266 是字节响应。
主要问题是无法从 esp8266 读取响应命令。
从 UsbSerial 中,有 RST button
、
syncRead
命令,还有用于串行操作的异步命令。syncWrite
另外,当前项目与esp8266/FTDI、esp8266/cp2102完美配合。 所以,我认为,主要算法是从 esptool.py 成功转换的
为了调试,我使用
asynchronous api
创建了新项目。
使用esp8266的按钮,使
esptool.py
引导加载程序模式,我正在将同步命令写入esp8266。
,esp8266正在发送响应命令,但无法读取esp8266/ch340
中的响应。
启动加载模式后,写入同步命令并断开USB与Android的连接,然后,我可以在esp8266/ch340
中看到正确的响应命令。
如果我写3次同步命令,那么第3次响应命令会在断开时刻到达。
从调试来看,
thisbootloader模式)的主要问题。