我有一个新的 PCI 串行卡,在 Ubuntu 14.04 机器上使用。
它的串行端口显示为 /dev/ttyS4 和 /dev/ttyS5。
$ dmesg | grep ttyS
[ 0.732690] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 0.733604] 0000:06:04.0: ttyS4 at I/O 0xd010 (irq = 16, base_baud = 115200) is a XScale
[ 0.733700] 0000:06:04.0: ttyS5 at I/O 0xd000 (irq = 16, base_baud = 115200) is a XScale
$
重启后我可以设置一次ttyS4的波特率...
$ sudo /bin/stty -F /dev/ttyS4 115200
$
第二次尝试产生错误...
$ sudo /bin/stty -F /dev/ttyS4 115200
/bin/stty: /dev/ttyS4: Input/output error
$
ttyS5 工作正常...
$ sudo /bin/stty -F /dev/ttyS5 115200
$
还有第二次……
$ sudo /bin/stty -F /dev/ttyS5 115200
$
问题是该卡在 ttyS4(插入了电缆)上进行了某种自动波特率检测,但在 ttyS5(没有)上没有。
我已经把卡扔掉了,现在正在使用 USB 适配器。