【问题标题】:How to send data through parallel port in Python?如何在 Python 中通过并行端口发送数据?
【发布时间】:2016-06-24 14:25:55
【问题描述】:

我需要使用 Python 通过并行端口发送一些数据。为此,我正在使用 psychopy.parallel 模块。

我有两台通过并行端口连接的 Windows 7 x64 机器。这个连接已经过测试并且工作正常,因为它被另一个软件用来通过 LPT1 端口发送数据。

我已经按照here 的描述为 psychopy.parallel 安装了必要的库。

这是我天真的直觉:

机器 1(发送数据):

from psychopy import parallel
port = parallel.ParallelPort(address="0xC010")
port.setData(3) # sets just pin 2, 3 high

检查机器 1

port.readData()
> 3

检查机器 2(接收数据):

from psychopy import prallel
port = parallel.ParallelPort(address="0xEC00")
port.readData()
> 0 

我看到虽然我可以在 Machine 1 上正确设置引脚并读取结果,但 Machine 2 只是给了我一个 0

  • 如何正确通过并口发送和接收信号?

【问题讨论】:

  • 作为替代方案,您有什么理由不能只使用 TCP/IP?
  • 发送255会收到什么?
  • 1.不幸的是,我必须使用并行端口进行 LPT1 调试。 2.如果我发送255,port.readData()的输出没有变化,仍然是255。 3. pyparallel 不适用于 Windows x64
  • @handle Psychopy.parallel 包本质上是 pyparallel,但有几个额外的便利功能

标签: python psychopy parallel-port


【解决方案1】:

有几个选项:

  • 也许您没有合适的驱动程序来与 pyparallel/psychopy 交谈。如果您使用的是独立 PsychoPy(包括 32 位 python),则需要 32 位并行端口驱动程序。下面链接中的答案告诉您如何下载另一个测试实用程序,该实用程序将插入正确版本的 32 位和 64 位驱动程序,显然您需要在两台机器上执行此操作
  • 您的脚本发送脉冲将立即完成,并且可以想象,当脚本结束时引脚都被设置回低电平? (我认为通常情况并非如此,但值得检查)
  • 您是否为并行端口设置了正确的地址?您的代码目前使用默认地址,但有多种选择。
  • 最后,下面的链接告诉您如何直接使用 inpout32.dll 进行操作,但我认为首先要修复驱动程序

PsychoPy sending triggers on 64bit OS

【讨论】:

  • 感谢您提供的链接,我已经更新了我的问题。
猜你喜欢
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多