我的 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 后仍然存在。
| 归档时间: |
|
| 查看次数: |
1807 次 |
| 最近记录: |