我试图在python中使用spi-throw-spiDev在Pi和ad5422之间发送24位数据。输入移位寄存器是24位宽的。在串行时钟输入SCLK的控制下,数据首先作为24位字加载到设备MSB中。数据记录在SCLK的上升沿。 输入寄存器由8个地址位和16个数据位组成。 24位字无条件锁存在锁存引脚的上升沿上。 例如发送数据:地址0x01,数据:0x0148=>;0x010148 有人知道我在干什么吗? 我的代码是:
import spidev
import time
import RPi.GPIO as GPIO # import RPi.GPIO module
from time import sleep # lets us have a delay
GPIO.setmode(GPIO.BCM) # choose BCM or BOARD
GPIO.setup(12, GPIO.OUT) # set GPIO24 as an output
spi_bus = 3
spi_device = 0
spi = spidev.SpiDev()
spi.open(spi_bus, spi_device)
spi.max_speed_hz = 1000000
send_controll=0x55
send_data_ctrl1=0xb0
send_data_ctrl2=0x06
send_add=0x01
send_data=0x01
send_data=0x48
try:
print("set GIOP high")
#spi.xfer2([send_controll])
spi.xfer2([send_controll,send_data_ctrl,send_data_ctrl2])
GPIO.output(12, 1)
sleep(0.01)
GPIO.output(12, 0)
sleep(0.5)
spi.xfer2([send_add,send_data1,send_data2])
GPIO.output(12, 1)
sleep(0.01)
GPIO.output(12, 0)
print("end GIOP high")
except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly:
print("Keyboard interrupt")
except:
print("some error")
finally:
print("clean up")
GPIO.cleanup() # cleanup all GPIO
但它不起作用
目前没有回答
相关问题 更多 >
编程相关推荐