
Ubuntu日本語フォーラム

ログインしていません。
python を使った簡単なプログラムを動かそうとしたのですが、まったく動きません。
バーコードリーダをシリアルポートにつないで、バーコードをかざすと、リーダーは「ピッ」という音を出すのですが、
pythonで読めません。
import serial
ser = serial.Serial('/dev/ttyS0', 9600, timeout=5)
s = ser.read(5)
print s
ser.close()
といった簡単なものです。
シルアル通信をするには、ドライバなど必要なのでしょうか?
setserial -q /dev/ttyS*
/dev/ttyS0, UART: 16550A , Port:0x3f8, IRQ 4
以下略
といった情報が出ます。また、BIOS設定画面では、上と同様な値でした(IRQなど)。
また、起動時には、
Serial: 8250/16550 driver $Revision: 1.90 $4Ports, IRQ sharing enabled
Serial8250: ttyS0 at I/O 0x3f8 (irq=4) is a 16550A
といったメッセージも表示されます。
less /proc/interrupts を見ると、
0: IO-APIC-edge timer
1: IO-APIC-edge i8042
8: IO-APIC-edge rtc
9: IO-APIC-level acpi
14: IO-APIC-edge libata
15: IO-APIC-edge libata
以下略
となりますが、
echo 'hello' > /dev/ttyS0
を実行すると、そのときだけ
4: IO-APIC-edge serial
の表示が出ます。
何をどうしたらよいのか、よくわかりません。
どなたか、対処方法を教えていただけないでしょうか。
よろしくお願いします。
オフライン