用Python写入IC

时间:2013-03-16 11:39:05

标签: python c file-io

我有一个IC,我试图用Python进行通信。我有一个工作的C应用程序,写入几个字节,然后读取响应,但我似乎无法在Python中获得相同的结果。

IC确实使用Python代码进行响应,但是错误的建议是写入的内容无效。

这是我到目前为止所拥有的。

工作C实施:

unsigned char buffer[2];
int dev;

dev = open(device_path, O_RDWR);

buffer[0] = 0xB8;
buffer[1] = 0x00;

if (write(*dev, buffer, 2) < 2){
    //error
}

buffer[0] = 0xBE;

if(write(*dev, buffer, 2) < 2){
    //error
}

if(read(*dev, output, 9) < 9){
    //error
}

close(dev);

的Python:

dev = open(device_path, 'r+')
buff = pack('BB', 0xB8, 0x00)
device.write(buff)
buff = pack('BB', 0xBE, 0x00)
device.write(buff)
out = device.read(9)
out = unpack('BBBBBBBBB', out)
print out
dev.close()

使用Python:

dev = os.open(device_path, os.O_RDWR)
buff = pack('BB', 0xB8, 0x00)
os.write(device, buff)
buff = pack('BB', 0xBE, 0x00)
os.write(device, buff)
out = os.read(device, 9)
out = unpack('BBBBBBBBB', out)
print out
os.close(dev)

1 个答案:

答案 0 :(得分:2)

您应该使用os.open打开设备以匹配C程序。

如果您坚持使用缓冲IO,则在尝试阅读之前至少应该刷新。