gpt4 book ai didi

java - Linux 中 USB 串行端口发生意外变化

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:18 27 4
gpt4 key购买 nike

我在使用自定义电子设备通过 USB 接口(interface)上的 RS232 与工作站进行通信时遇到问题。一旦设备连接,它就会接收地址 /dev/ttyUSB0,在发送接收命令一段(随机)时间后,设备似乎挂起。通过查看设备事件 (dmesg),我们发现以下错误:

ftdi_sio ttyUSB0: failed to get modem status: -32
...
USB disconnect, device number 29
[66208.321174] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[66208.497613] usb 1-1.5: new full-speed USB device number 30 using ehci-pci
[66208.589052] usb 1-1.5: New USB device found, idVendor=0403, idProduct=6001
[66208.589055] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3

显然系统注意到设备断开/重新连接,因此,设备被挂载到另一个端口,即/dev/ttyUSB1,导致进一步的通信失败。创建测试台会改变行为:错误似乎出现频率较低,而使用完整的应用程序时,错误会反复出现。应用程序使用jSSC-2.8.0与串口进行通信。整个应用程序是用java 8编写的,并使用ReSTLe库向一些Web服务发出一些REST请求。是什么导致了这些奇怪的行为?

已添加根据下面的 @DarkFalcon 评论,测试床轮询设备通常比实际应用程序更快:这可能可以解释为什么测试的性能比其他测试更好。

最佳答案

问题是由于电源管理造成的:盒子判定设备处于空闲状态,并在一定时间后断开电源。然后该设备显然会在几乎 0 时间内再次启动。所以奇怪的行为

关于java - Linux 中 USB 串行端口发生意外变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30260815/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com