常见原因包括:没有插入串口设备、驱动未安装、设备被系统识别为其他类型,或当前环境不支持枚举串口。
println(device.scan('serial'))
请先在设备管理器中确认端口是否存在,名称通常是 COM1、COM3 这类格式。USB 转串口设备可能需要安装厂商驱动。
Linux 串口通常位于 /dev/ttyUSB0、/dev/ttyACM0 等路径,普通用户可能没有读写权限。常见处理方式是把用户加入 dialout 组,然后重新登录。
sudo usermod -a -G dialout $USER
部分 Linux 发行版编译或运行串口依赖时还可能需要 pkg-config、libudev-dev 等系统包。
macOS 常见串口名包括 /dev/tty.* 和 /dev/cu.*。做主动连接和普通串口通信时通常优先尝试 /dev/cu.*。
device.list() 只返回当前程序已打开的设备句柄,不返回系统全部串口。要查看系统串口,请使用 device.scan('serial')。
不是。扫描只代表操作系统枚举到了端口。真正通信还取决于权限、端口是否被占用、波特率和校验位等参数是否匹配,以及硬件设备是否在线。
桌面应用访问硬件设备时,BT 后端运行在本机。请确保目标电脑安装了设备驱动,并且应用进程有权限访问串口。长时间运行的设备通信逻辑应控制读取频率和超时时间,避免界面交互被同步读写阻塞。