3
import serial
while True:
    ser=serial.Serial(port='COM30',baudrate=9600)
    print "try"
    s=ser.read(100) #reading up to 100 bytes
    print s
ser.close()

デバイスマネージャ:

ここに画像の説明を入力
Pythonを使用してポートからデータを読み込もうとしています。しかし、それはエラーを示しています:

Traceback (most recent call last):
  File "new_python.py", line 3, in <module>
    ser=serial.Serial(port='COM30',baudrate=9600)
  File "C:\Anaconda\lib\site-packages\serial\serialwin32.py", line 38, in __init__
    SerialBase.__init__(self, *args, **kwargs)
  File "C:\Anaconda\lib\site-packages\serial\serialutil.py", line 282, in __init__
    self.open()
  File "C:\Anaconda\lib\site-packages\serial\serialwin32.py", line 66, in open
    raise SerialException("could not open port %r: %r" % (self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'COM30': WindowsError(5, 'Access is denied.')

***Repl Closed***

スタック上の以前のソリューションから、Python 32ビットを使用して試してみましたが、管理者権限でcmdから呼び出しましたが、同じエラーです!

matlab を試してみると、次のように表示されます。

s = serial('COM30')

   Serial Port Object : Serial-COM30

   Communication Settings 
      Port:               COM30
      BaudRate:           9600
      Terminator:         'LF'

   Communication State 
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0
4

2 に答える 2

0
import serial
import time
ser=serial.Serial(port='COM30',baudrate=9600)
ser.open()
while True:
    print "try"
    time.sleep(10)
    s=ser.read(100) #reading up to 100 bytes
    print s
ser.close()

これを試すことができますか?

于 2015-11-13T12:26:25.033 に答える