Próbuję komunikować się z UART na wbudowanym systemie za pomocą portu Win32::Serial (moduł perl). Wydaje się, że działa dobrze, jeśli chodzi o wysyłanie danych, ale z jakiegokolwiek powodu nie jest w stanie odebrać danych. Mam nadzieję, że jest inna funkcja oprócz read(), która pokaże odczytane dane?
# 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);
Dzięki
2 odpowiedzi
Dzięki za odpowiedź, ale okazuje się, że w bibliotece jest funkcja wejściowa, dzięki której i 1 sekundzie snu udało mi się uruchomić mój moduł.
# 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;
Jak sobie przypominam, w Win32 ActivePerl możesz określić porty w nazwie pliku w ten sposób: otwórz(mój $fh, '+>COM1') lub umrzyj "COM1: $!"; tryb bin($fh);
Udało mi się to z powodzeniem, ale nigdy z powodzeniem nie używałem Win32: Serial! Może to pomaga?
Podobne pytania
Nowe pytania
perl
Perl to proceduralny, wysokopoziomowy, dynamiczny język programowania ogólnego przeznaczenia, znany z natywnej obsługi wyrażeń regularnych i możliwości analizowania ciągów. Użyj tego tagu w przypadku ogólnych pytań dotyczących Perla. W przypadku rzeczy związanych z nowym (ale pokrewnym) językiem Raku (dawniej „Perl 6”), użyj tagu raku. W przypadku wyrażeń regularnych w stylu Perla w innych językach użyj znacznika regex lub, jeśli są one oparte na bibliotece PCRE, znacznika pcre.