我正在使用Raspberry Pi中的I2C读取24位值
我打开/dev/i2c-1
文件,然后使用python中的os.read
函数从中读取
交易正在正确执行。
但问题是即使我可以访问寄存器,当我尝试将值存储在一个它不起作用的变量中时。根据os.read()的文档,如果到达EOF,则返回一个空字符串,这正是我的问题所在。如何存储正确的值?
以下代码:
fd = os.open(filename,os.O_RDWR) //Opens the file
#The reason i use os.open instead of normal python open is that I
#need to access the linux C function.
def func(fd,addr):
os.write(fd,addr) // Sets the pointer to the register to be read.
x = os.read(fd,3) //Reads the value from the register.
print x //Prints an empty string
为了交叉检查,我尝试使用pigpio库。如果我使用它的函数读取它,它返回2个值,读取的字节数和字节串本身。
我注意到的是,如果我尝试存储从pigpio函数返回的字节字符串,当我在屏幕上打印它时,我仍然会得到一个空字符串,如此打印(数据)。
我认为问题不在于存储数据,而在于正确格式化数据。
那么有人可以建议如何将字节字符串转换为int值吗?
我知道python 3有一个函数。但我需要使用python 2