【问题标题】:Writing to serial port in Perl在 Perl 中写入串行端口
【发布时间】:2013-09-26 10:04:35
【问题描述】:

我需要与 Perl 脚本中的串行端口通信。我需要发送字符并读取输入并搜索字符串。

实现这一目标的最简单方法是什么?通过使用“expect”或在 Perl 中打开 /dev/ttys0 设备?还是其他方法?

我更喜欢使用 perl,但我不知道它是否简单且功能是否符合预期。

【问题讨论】:

  • 到目前为止有什么尝试?显示您的代码。
  • 我对 perl 的 expect 插件做了一些实验,但它看起来很笨拙。我打算试试“askovpen”的建议

标签: linux perl serial-port expect


【解决方案1】:
my $port = new Device::SerialPort("/dev/ttyS0"); 
$port->user_msg(ON); 
$port->baudrate(9600); 
$port->parity("none"); 
$port->databits(8); 
$port->stopbits(1); 
$port->handshake("xoff"); 
$port->write_settings;

$port->lookclear; 
$port->write("some command to com-port");

my $answer = $port->lookfor;
# or my $answer=$port->read(255);

【讨论】:

  • 非常感谢!在 Linux 中,我是否需要 root 权限才能执行上述操作?
  • @Strudle 没有。您需要可以读/写/dev/ttyS0 的用户/组。 ls -l /dev/ttyS0 查看
【解决方案2】:

你可以试试Win32::SerialPort for Win32 和Device::SerialPort for linux。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 2016-09-26
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多