Arduino和Python通信错误
问题描述:
背景:我正在开发一个项目,该项目应该有一个Arduino mega超声波传感器通过USB将数据发送到计算机,并且我不断收到相同的错误。我检查过设备管理器,我确信Arduino位于正确的端口上。Arduino和Python通信错误
我的Python错误:
Traceback (most recent call last):
File "----", line 6, in <module>
ser = serial.Serial('COM4', 115200)
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 38, in __init__
SerialBase.__init__(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\serial\serialutil.py", line 282, in __init__
self.open()
File "C:\Python27\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 'COM4': WindowsError(5, 'Access is denied.')
[Finished in 0.1s]
我的Arduino的错误:
[Stino - Start building "---"...]
Sketch uses 4,922 bytes (1.9%) of program storage space. Maximum is 258,048 bytes.
Global variables use 727 bytes (8.9%) of dynamic memory, leaving 7,469 bytes for local variables. Maximum is 8,196 bytes.
[Stino - Done building "----" in 0.1s.]
[Stino - Start uploading...]
avrdude: ser_open(): can't open device "\\.\COM4": Access is denied.
avrdude: ser_drain(): read error: The handle is invalid.
[Stino - Exit with error code 1.]
我在这已经工作了一段时间,现在,我仍然不知道如何解决这个问题。请帮忙。
答
这里的错误是非常基本的。您的arduino COM端口不是COM4
。你可以通过你甚至无法上传你的程序来看到这一点。检查设备管理器中的Ports
部分,找出哪一个是正确的。
更新:或者如果它是COM4,如其他答案中的建议,它由其他程序打开。它可能是另一个Arduino IDE或您之前运行的仍在内存中的python程序尝试。检查任务管理器以查找并杀死嫌疑犯。
答
如果你确定“COM4”是正确的,这种错误的一个常见原因是另一个程序当前正在使用该端口,并且不允许python访问它。关闭任何其他试图与COM4上的arduino对话的程序,然后重试。
+0
我唯一运行的程序是Sublime 3和Chrome。所以我不认为这是问题。 – Fordro47 2015-02-23 18:54:40
就像我上面说的那是COM4。我只是再次检查。 – Fordro47 2015-02-23 18:52:33
发现我的python仍在执行,我没有意识到。谢谢! – Fordro47 2015-02-23 19:24:35