串口问题

Sud*_*mar 6 serial-port 12.04

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

命令:

dmesg | grep ttyS
Run Code Online (Sandbox Code Playgroud)

输出:

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

我认为没有检测到串口。

任何人都可以帮我解决问题吗?

Eri*_*lho 8

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

上面的行告诉我们内核在您的 PC 中检测到一个16550 UART芯片,它提供了一个串行端口 (ttyS0),并且有一些资源分配给它(0x3f8 I/O 地址IRQ 4)。

串行设备的默认权限如下:

crw-rw---- 1 root dialout ... /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

因此,如果您是该dialout组的成员,您将能够访问(读取/写入)串行端口设备。dialout通过运行将自己添加到组中:

sudo adduser $USER dialout
Run Code Online (Sandbox Code Playgroud)

或者:

sudo adduser <username> dialout
Run Code Online (Sandbox Code Playgroud)

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