Pyserial:无法配置端口:(22, '无效的参数')
在Ubuntu 16.04在VirtualBox中,与连接至USB端口的Beaglebone黑色,运行下面的代码将返回一个错误:Pyserial:无法配置端口:(22, '无效的参数')
import serial
ser = serial.Serial()
ser.port = '/dev/sdb'
ser.baudrate = 9600
ser.open()
错误:
Could not configure port: (22, 'Invalid argument')
我在终端中使用blkid
获得了BBB的路径。 BBB通常可以在虚拟机中使用SSH进行访问。
什么是导致错误,为什么Python不能打开端口?
编辑
的blkid
输出是:
/dev/sr0: UUID="2017-07-17-16-26-18-00" LABEL="VBOXADDITIONS_5.1.24_117012" TYPE="iso9660"
/dev/sda1: UUID="58957263-a785-44f1-89a0-a66efd56623f" TYPE="ext4" PARTUUID="306fada4-01"
/dev/sda5: UUID="2e8ad169-1527-4336-9169-e189688038cd" TYPE="swap" PARTUUID="306fada4-05"
/dev/sdb: SEC_TYPE="msdos" LABEL="boot" UUID="0CD5-4AE7" TYPE="vfat"
/dev/sdc1: LABEL="WATTO" UUID="BAF1-8FE6" TYPE="vfat" PARTUUID="1299f9fa-01"
哪里/dev/sdb
是BBB的路径和/dev/sdc1
U盘的路径。
ls -l /dev/sd*
回报:
brw-rw---- 1 root disk 8, 0 jul 31 11:14 /dev/sda
brw-rw---- 1 root disk 8, 1 jul 31 11:14 /dev/sda1
brw-rw---- 1 root disk 8, 2 jul 31 11:14 /dev/sda2
brw-rw---- 1 root disk 8, 5 jul 31 11:14 /dev/sda5
brw-rw-rw- 1 666 disk 8, 16 jul 31 16:32 /dev/sdb
brw------- 1 root root 8, 32 jul 31 16:52 /dev/sdc
brw------- 1 root root 8, 33 jul 31 16:52 /dev/sdc1
lsblk
回报:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 12G 0 disk
├─sda1 8:1 0 10G 0 part/
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 1 96M 0 disk /media/alexander/boot
sdc 8:32 1 7,5G 0 disk
└─sdc1 8:33 1 7,5G 0 part /media/alexander/WATTO
sr0 11:0 1 56,8M 0 rom /media/alexander/VBOXADDITIONS_5.1.24_117
你可能有错误的设备名称:阅读在这个结尾的链接案件, VirtualBox很可能会误解主机USB串行设备,因此分配了错误的设备(/ dev)名称。
“/ dev/sdb”可能是一个块设备,如硬盘驱动器。
$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Jul 31 13:59 /dev/sda
brw-rw---- 1 root disk 8, 1 Jul 31 13:59 /dev/sda1
brw-rw---- 1 root disk 8, 2 Jul 31 13:59 /dev/sda2
brw-rw---- 1 root disk 8, 5 Jul 31 13:59 /dev/sda5
^
Note 'b' for block device
串行端口将如“的/ dev/ttyUSB0”
$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Jul 31 14:34 /dev/ttyUSB0
^
Note 'c' for character device
串行端口经常有组设置为“拨出” - 但是这仅仅是信息,这被设置为一部分承认它是一个串口。
您也不妨就在VirtualBox中使用主机串行USB设备读取的档案:https://techtooltip.wordpress.com/2008/09/12/using-host-serial-port-from-guest-in-virtual-box/
的Beaglebone似乎只显示通过USB连接的文件系统是:/ dev/sdb的 如果你想连接到它通过串行连接,您需要一个USB转TTY转换器。 (例如PL2303HX,2美元-10美元)。 你也可以按照这个教程来连接电脑到你的串口。
http://www.dummies.com/computers/beaglebone/how-to-connect-the-beaglebone-black-via-serial-over-usb/
'的/ dev/sdb'不是串行端口 - 它通常是某种类型的文件存储驱动器。串行端口通常看起来像'/ dev/ttyS0'或'/ dev/ttyUSB0'或类似的。 – jszakmeister
如果我插入一个USB棒,它的路径是:'/ dev/sdc /'。这种行为可能是由于VirtualBox造成的吗? – Alexander
分享您的blkid输出,因为@jszakmeister写道/ dev/sdb通常映射到硬盘驱动器 – Vinny