Perl Win32::串行二进制通信

Perl Win32::串行二进制通信,perl,serial-port,perl-module,Perl,Serial Port,Perl Module,我正在尝试使用Win32::Serial port perl模块与嵌入式系统上的UART通信。就发送数据而言,它似乎工作得很好,但不管出于什么原因,它都无法接收数据。我希望除了读取之外还有其他功能可以显示读取的数据吗 # Write Serial Data to Port in Little Endian Form foreach my $intermValue (@writeData) { my $msb = int($intermValue/256); my $lsb = (

我正在尝试使用Win32::Serial port perl模块与嵌入式系统上的UART通信。就发送数据而言,它似乎工作得很好,但不管出于什么原因,它都无法接收数据。我希望除了读取之外还有其他功能可以显示读取的数据吗

# Write Serial Data to Port in Little Endian Form
foreach my $intermValue (@writeData) {
    my $msb = int($intermValue/256);
    my $lsb = ($intermValue - $msb*256);

    # Writing LSB first and MSB after (Little Endian Form)
    print "Writing: LSB: ".$lsb." MSB: ".$msb."\n";
    $class->{"serialPort"}->transmit_char($lsb);
    $class->{"serialPort"}->transmit_char($msb);
}

# Read Data From Serial Port
my ($countIn, $recievedData) = $class->{"serialPort"}->read($expectedBytes);

我记得,在Win32 ActivePerl上,您可以在文件名中指定端口,如下所示: openmy$fh,“+>COM1”或die COM1:$!; binmode$fh


我已经成功地使用了这个,但是我从来没有成功地使用过Win32:Serial!也许会有帮助?

谢谢你的回复,但事实证明,库中有一个输入函数,使用它和1秒的睡眠,我能够使我的模块工作

# Write Serial Data to Port in Little Endian Form
foreach my $intermValue (@writeData) {
    my $msb = int($intermValue/256);
    my $lsb = ($intermValue - $msb*256);

    # Writing LSB first and MSB after (Little Endian Form)
    print "Writing: LSB: ".$lsb." MSB: ".$msb."\n";
    $class->{"serialPort"}->transmit_char($lsb);
    $class->{"serialPort"}->transmit_char($msb);
    }
    # Read Data From Serial Port
    sleep(1);
    my  $recievedData = $class->{"serialPort"}->input;