串口问题

我无法在我的PC上使用Ubuntu 12.04访问串口。

命令:

dmesg | grep ttyS

输出:

[    0.590705] 00:08: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A

我觉得串口没有被检测到。
有人可以帮我解决这个问题吗?

请发布ls /dev/ttyS*的输出。您是否有任何串行设备来测试端口(例如串行Arduino、打印机、串行鼠标等)? - 0x2b3bfa0
/dev/ttyS0 /dev/ttyS14 /dev/ttyS2 /dev/ttyS25 /dev/ttyS30 /dev/ttyS8 /dev/ttyS1 /dev/ttyS15 /dev/ttyS20 /dev/ttyS26 /dev/ttyS31 /dev/ttyS9 /dev/ttyS10 /dev/ttyS16 /dev/ttyS21 /dev/ttyS27 /dev/ttyS4 /dev/ttyS11 /dev/ttyS17 /dev/ttyS22 /dev/ttyS28 /dev/ttyS5 /dev/ttyS12 /dev/ttyS18 /dev/ttyS23 /dev/ttyS29 /dev/ttyS6 /dev/ttyS13 /dev/ttyS19 /dev/ttyS24 /dev/ttyS3 /dev/ttyS7 - Sudheer Kumar
这是我尝试执行该命令时得到的输出结果。 - Sudheer Kumar
2你能检查一下你是否有读写ttyS01的权限吗?在我的情况下,运行ls -l /dev/ttyS0返回的结果是:crw-rw---- 1 root dialout 4, 64 May 8 08:20 /dev/ttyS0,我可以正常使用它。 - Harris
1个回答

[    0.590705] 00:08: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
上面的内容告诉我们,内核在您的计算机中检测到一个16550 UART芯片,它提供了一个串行端口(ttyS0),并且有一些资源分配给它(0x3f8 I/O地址IRQ 4)。
串行设备的默认权限如下:
crw-rw---- 1 root dialout ... /dev/ttyS0

如果你是 dialout 组的成员,你就可以访问(读取/写入)串口设备。通过运行以下命令将自己添加到 dialout 组中:
sudo adduser $USER dialout

或者:

sudo adduser <username> dialout

然后退出并重新登录。现在您应该可以访问串口了。当然,您还必须在您用于访问设备的程序中输入正确的设置(速度、数据位、奇偶校验、停止位、流控制)。