お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-05-01 11:30:33

kado-chan
新しいメンバ
登録日: 2010-01-19

シリアル通信ができません

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

の表示が出ます。

何をどうしたらよいのか、よくわかりません。
どなたか、対処方法を教えていただけないでしょうか。

よろしくお願いします。

オフライン

 

Board footer

Powered by FluxBB