python - 用 Python 写入 IC

标签 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)

最佳答案

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

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

关于python - 用 Python 写入 IC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448798/

相关文章:

python - 为什么要替换原始图像矩阵值?

char总是使用flex改变

java - 用户工作目录 : XP vs Vista

c - C 读取输入文件并忽略空行或以 # 开头的行

java - java中如何分割文件中的数字?

python - Pandas groupby 对串联的 groupby 对象

python - 如何判断我的 python 程序是否已向 sys.stdout 写入任何内容(在同一程序内)?

python - 属性错误:类型对象 'Ned' 没有属性 'attack' ?

c++ - 如何在 Windows 映射我的程序的 DLL 之前保留内存区域?

iphone - 如何从 iPhone 中的 C++ 代码调用 C 函数?