我正在开发一个通过 Android 模拟器通过 USB 与串行端口通信的程序。
emulator -qemu -serial /dev/ttyUSB0
模拟器能够打开端口并写入。但是,读取没有发生。
该程序有一个由计时器维护的读取超时。读取发生在一个单独的“读取”线程中。主线程有一个socketpair
fd 对来向读取线程发出串行端口在超时后关闭的信号。在读取线程中,轮询(poll()
函数调用)发生在 2 个文件描述符上:一个是串行端口 fd,另一个是套接字对之一。
我连接的电路板可以通过“cutecom”发送命令正常工作
串行端口的轮询永远不会成功。然而,'socketpair'ed fd 的轮询成功,并且线程在主线程超时后发送的关闭信号上结束。
问题:
- 是否有任何特殊设置用于读取甚至环回失败
- 串口的读写设置有区别吗?