首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino-pyFirmata-Python窗口错误(5,访问被拒绝)

Arduino-pyFirmata-Python窗口错误(5,访问被拒绝)
EN

Stack Overflow用户
提问于 2015-05-30 12:16:08
回答 1查看 2.2K关注 0票数 3

早上好

我想用Arduino连接我的pyFirmata lib板到pc上,但是出现了一个奇怪的问题。前提:pySerialpyFirmata成功地安装在我的计算机上。我有windows 8.0 64 bitArduino和USB端口的驱动程序运行良好(因为我可以将每个草图上传到Arduino)。

我想运行的代码非常简单:

如果一个button (连接到引脚4,被method.get_pin()firmata library配置为输入)被推送,一个红色的led会闪烁,否则绿色的led就可以了。我用一种简单的功能让它们眨眼:

代码语言:javascript
复制
from time import sleep
def Blink(pin):
    board.digital(pin).write(1)
    sleep(1)
    board.digital(pin).write(0)
    sleep(1)

板在全局范围中被定义为pyfirmata.Arduino('com3')

所有联系人都可以正常工作,因为我已经用firmata_test.exe对它们进行了测试,而且我确信在启动python之前没有任何串行连接是打开的。

奇怪的是:

如果我在python上编写了所有命令,整个程序都能正常工作,那么leds就会闪烁!!但是,如果我将所有命令写在一个模块上,然后运行它,它就会给出以下错误:

代码语言:javascript
复制
"Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    board = pyfirmata.Arduino('com3')
  File "C:\Python27\lib\site-packages\pyfirmata\__init__.py", line 16, in __init__
    super(Arduino, self).__init__(*args, **kwargs)
  File "C:\Python27\lib\site-packages\pyfirmata\pyfirmata.py", line 89, in __init__
    self.sp = serial.Serial(port, baudrate, timeout=timeout)
  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()))
SerialException: could not open port 'com3': WindowsError(5, 'Access denied.')"

也就是说,它不能打开港口。我试过一些调试,但没有帮助我。

如果我检查端口的状态

代码语言:javascript
复制
por = serial.Serial()
    por.port = 'com3'
    por.isOpen()
>>False

但如果我用

代码语言:javascript
复制
por = serial.Serial('com3')

也会弹出同样的错误。

看看Arduino,TX经常闪烁,所以我可以想象它正在向串口发送一些数据。如果我打开arduino应用程序,它会告诉我端口很忙。如果这是管理员许可的问题,我无法停止,因为我以admin的身份运行py空闲。即使我在管理模式下从CMD运行脚本,错误仍然存在。

非常感谢你的每一个回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-30 12:56:53

伙计们我解决了问题!我重新启动了pc,然后(首先)在管理模式下启动了CMD并运行了模块。现在起作用了!不知道为什么,直到现在为止,我似乎是第一次没有管理权限运行。之后,即使我在管理模式下打开CMD,错误仍会继续出现。

希望这能对某人有所帮助。

谢谢。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30546053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档