我有一个新的 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
$
答案1
问题在于,该卡在 ttyS4(已插入电缆)上执行某种自动波特率检测,但在 ttyS5(未插入电缆)上没有执行。
我已将卡扔掉了并且现在正在使用 USB 适配器。