从I2C读取

时间:2017-08-16 13:45:37

标签: python python-2.7 raspberry-pi i2c

我正在使用Raspberry Pi中的I2C读取24位值 我打开/dev/i2c-1文件,然后使用python中的os.read函数从中读取 交易正在正确执行。

enter image description here

但问题是即使我可以访问寄存器,当我尝试将值存储在一个它不起作用的变量中时。根据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

0 个答案:

没有答案