我在用蟒蛇做覆盆子。我正在尝试使用外部应用程序(Hipi)从i2c加速度计读取值。为此,我以这种方式使用了Popen函数:
Xprev=Popen(['hipi-i2c', "r", "1", "0x1D", "0x01"]) # read X value结果是一个值(例如100)。如果我试图打印python的结果,或者从命令行执行相同的命令,它就能工作。
我需要将这个值加到另一个值上,以进行比较,看看加速度计是否在移动,但是如果我做了一个和
S=10 # Threshold
Xpt=Xprev + S # Xprev from previous read
Xnt=Xprev - S # Xprev from previous read求和的结果是:unsupported operand type (s) for +: 'Popen' and 'int'
发布于 2014-08-19 22:35:36
from subprocess import Popen, PIPE
cmdline = ['hipi-i2c', 'r', '1', '0x1D', '0x01']
result = Popen(
cmdline
, stdin=PIPE
, stdout=PIPE
, stderr=PIPE
)
output = result.stdout.readlines()
try:
X = int(output[0])
except:
pass
print Xhttps://stackoverflow.com/questions/25394001
复制相似问题