pl2303“发送中断时出错”是什么意思?

Krz*_*zak 5 serial-port tty

我的 pl2303 转换器有问题。我正在使用其中两个,如下所示:

笔记本电脑 <-USB-串行-> <-串行-串行-> <-串行-USB-> RASPBERRYPI

换句话说,我使用两个 USB 转串口转换器并在中间使用空调制解调器将 Raspberry Pi 与我的笔记本电脑连接起来。

我可以通过 minicom 进行通信,“视觉上”它看起来很好(所有信息都正确发送),但是当我查看日志时,它会产生以下 dmesg 输出:

[  343.390610] pl2303 ttyUSB1: pl2303_get_line_request - failed: -32
[  343.685367] pl2303 ttyUSB1: error sending break = -32
Run Code Online (Sandbox Code Playgroud)

只要一切正常,我就可以忍受……但事实并非如此。例如,我无法通过 ser2net 与 RPi 连接。“另一方”根本没有收到消息。我怀疑这个错误是导致这个问题的原因。我四处搜寻,但没有找到任何解决方案。有人可以帮我吗?

另外 - 当我尝试通过 ser2net 连接时,有一件事发生了。在那之前我可以做类似的事情

cat -v < /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

echo "blablabla" > /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

成功了。当我尝试通过 ser2net 连接后,它停止工作,只有 minicom 通信正常。

小智 1

这是一个迟到的答案,但也许有人可以使用它。

TLDR:用 FTDI FT232 替换 PL2303 USB 转串口。

我的 Pi 监控太阳能控制器也有同样的问题。当我开始扫描数据时,每 10 秒就会出现两个相同的错误。我使用 pymodbus 进行通信。

将PL2303改为FTDI FT232,问题解决。

我猜这是PL2303驱动程序超时。我打开串行连接一次,并永远保持打开状态。

为了进行测试,我尝试更改代码以在扫描之前打开连接并在扫描之后再次关闭连接。这并没有改变任何东西,除了我的程序在拔出和重新插入 USB 后仍然存在。