将SPIdev与Python和Raspberry PI一起使用

2024-05-15 14:58:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从E910.68太阳传感器读取光线角度测量值,该传感器使用Raspberry PI和Python库SPIdev通过SPI进行通信。 在阅读数据表时,我了解到我需要发送一个命令(0x00)来读取传感器的值,为了实现这一点,xfer2命令似乎满足了我的需要,但我不知道它是如何工作的。此外,我在数据表上看到,为了激活E910.68启用测量命令,SPI写入011100XXYYP1ZDDD(其中XX=X二极管的功能,YY=Y二极管的功能,P=启用/禁用所有光电二极管,S=操作模式(1=启用测量),Z=模拟输出的状态(我不需要),DDD=模拟输出的操作模式(不需要它))必须发送。我将其设置为0b0111000000010000。这是我所做的:

import spidev
import time

def main(args=None):
    spi = spidev.SpiDev()
    spi.open(0,0)

    spi.mode = 0
    spi.max_speed_hz = 5000000

    spi.xfer2([0b0111000000010000],2)

    while True:
        r=spi.xfer2([0x00],2)
        print(r)
        time.sleep(1)

if __name__ == '__main__':
     main()

我得到的响应是一个常数[207]。 我错过了什么? 提前谢谢你


Tags: import命令功能spitimemain模式传感器