【问题标题】:Unable to view Serial Ports (ComPorts) on android无法在 android 上查看串行端口 (ComPorts)
【发布时间】:2022-12-09 18:57:33
【问题描述】:

我在我的安卓手机上安装了 Octo4A。 它安装了 Alpine linux 和 python3。 当我运行 python 脚本来查看串行端口时。 它说没有找到端口,但它确实使用相同的脚本在我的 Windows 计算机上找到了端口:

import serial.tools.list_ports as ports

def getAvailablePorts():
    availablePorts = list(ports.comports())
    return availablePorts

availablePorts = getAvailablePorts()

for port in availablePorts:
    print("Available port: " + port.device)

Windows 上的输出:

可用端口:COM3

如何获取可用端口列表并使用 python3 在 android 上连接到它?

【问题讨论】:

  • 你好约翰。你用的是什么USB串口和手机?您可以发布lsusbdmesg | grep usb 的输出吗?
  • @MarcosG。 lsusblsusb: /sys/bus/usb/devices: Permission denied。第二个命令说dmesg: klogctl: Permission denied使用运行 andoird 7.1.1 的酷派 3632a。使用连接到 USB 分离器的 OTG 电缆连接。我的 arduino 和 3d 打印机都出现在 Octo4a 的 USB 列表中。
  • 我明白了,你的设备没有 root 权限……你试过没有那个 USB 分离器吗?连接两个设备后,它们可能无法从您的手机获得足够的电量,您可能想尝试使用带有外部电源的 USB 集线器。在任何情况下,如果 Octo4a 检测到设备,您可能会面临不同的问题。 Octo4a 为串行端口使用自定义驱动程序,您可能需要在 pyserial 中进行一些调整以使其工作。

标签: python python-3.x linux serial-port com-port


【解决方案1】:

如果您查看 code,pyserial 在 Linux 中查找端口的方式是尝试查找以下字符串:

/dev/ttyS*     # built-in serial ports
/dev/ttyUSB*   # usb-serial with own driver
/dev/ttyXRUSB* # xr-usb-serial port exar (DELL Edge 3001)
/dev/ttyACM*   # usb-serial with CDC-ACM profile
/dev/ttyAMA*   # ARM internal port (raspi)
/dev/rfcomm*   # BT serial devices
/dev/ttyAP*    # Advantech multi-port serial controllers
/dev/ttyGS*    # https://www.kernel.org/doc/Documentation/usb/gadget_serial.txt

在 Octo4A 中,串行端口显然被称为 /dev/ttyOcto4a,因此它们不会被 list_ports() 找到。

当然,这并不意味着 pyserial 不起作用,您可以尝试直接实例化并打开串口:

import serial

ser = serial.Serial(port='/dev/ttyOcto4a')

ser.isOpen()

我自己没有尝试过,所以我不能保证它会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多