8

シリアル ポート (COM4) をチェックし続け、シリアル ポートから文字 "1" が読み取られたときにメッセージを出力するようにループするプログラムを Python で作成しようとしています。ボタンを押すと、Arduinoガジェットからシリアルポート経由で「1」を送信したい。

ただし、シリアル オブジェクトのインスタンスを作成しようとすると、「[エラー 5]: アクセスが拒否されました」というエラーが表示されます。(これを処理する PySerial パッケージのファイルからわかることから、エラーが発生したインスタンス化時に自動的に開こうとします。)

私のコード:

c = serial.Serial('COM4', 9600)
while True:
    signal = c.read()
    print signal
    print "running"
    time.sleep(2)
    c.flushOutput()

ただし、「c = serial.Serial('COM4', 9600)」を超えることはありません。ここでエラーがポップアップします。これを修正するにはどうすればよいですか?

4

7 に答える 7

3

更新: これは PySerial 3.0 では明らかに不可能です。

Windows では、常に port=<int> アプローチを使用して成功しています。

つまり、コードを次のように変更します。

c = serial.Serial(3, 9600)
于 2011-11-28T03:22:04.927 に答える
1

Python 2.6ゼロベースの COM ポート インデックスを使用します。Python 2.7.xフルネーム「COM4」を使用できます。私の経験から、2.7 バージョンを使用することをお勧めします。Python 2.7.xSetup Tools (別名 Easy Install) をインストールします。これを入手したら、入力してpyserialモジュールをインストールしますeasy_install -U pyserialpyserialインストールドキュメントを参照)。

PATH環境変数に python パスを追加することを忘れないでください。

于 2013-03-09T15:39:44.373 に答える