如何启用/禁用串口?

如何启用/禁用串口?

我需要禁用然后启用串行端口以在 Java 程序上进行测试。

因为man页面上setserial写着:“使用 UART 类型 none 将禁用该端口。“,我使用sudo setserial /dev/ttyS4 uart none禁用端口。这成功禁用了串行端口。要再次启用串行端口,我使用sudo setserial /dev/ttyS4 -a autoconfig并且端口按预期启动。

禁用端口后,我尝试使用以下命令打开端口Java gnu.io.CommPortIdentifier功能。当我在执行该函数后尝试启用端口时gnu.io.CommPortIdentifier,我得到以下输出:

$ sudo setserial /dev/ttyS4 -a autoconfig
Cannot autoconfigure port: Device or resource busy

我该如何解决这个问题?有没有更好的方法来启用/禁用串行端口?或者我可以清除向端口发出的请求列表吗?

显然我不能直接终止该进程,因为我的测试正在其中运行。

答案1

我认为如果在禁用串行端口后删除 /dev/ttySx,Java gnu.io.CommPortIdentifier 将会出现更大的问题。

当您需要再次启用它时,您必须首先使用 MAKEDEV 脚本或 mknod 命令创建节点。这里是有关创建串行设备的一些信息。

答案2

您可以尝试删除/var/lock/LCK..ttyS4,使用rm.据我了解,您需要以这种方式解锁设备。

相关内容