Raspberry Pi和SPI接口(Python):如何传输数据?
我在Raspberry Pi上使用SPI接口 我可以用以下代码读取连接到SPI0的芯片寄存器(前20个寄存器):Raspberry Pi和SPI接口(Python):如何传输数据?,python,c,raspberry-pi,Python,C,Raspberry Pi,我在Raspberry Pi上使用SPI接口 我可以用以下代码读取连接到SPI0的芯片寄存器(前20个寄存器): spi=spidev.SpiDev() spi.open(0,0) x=spi.readbytes(20) k=0 for i in x: print(k,hex(i),i) k=k+1 我的问题是:如何使用“spi.xfer”设置特定寄存器的值?我不知道xfer(…)函数采用什么参数 如何使用“spi.xfer”从特定寄存器读取值 虽然我有原始
spi=spidev.SpiDev()
spi.open(0,0)
x=spi.readbytes(20)
k=0
for i in x:
print(k,hex(i),i)
k=k+1
我的问题是:如何使用“spi.xfer”设置特定寄存器的值?我不知道xfer(…)函数采用什么参数
如何使用“spi.xfer”从特定寄存器读取值
虽然我有原始的C代码;我仍然无法解释如何使用xfer(…)
下面是C代码:
我相信这一行代码是关键:
PyArg_ParseTuple(args, "O|IHB:xfer", &list, &speed_hz,
&delay_usecs, &bits_per_word)
告诉我们格式化字符串意味着:
-Python对象O
-表示以下选项是可选的|
-一个I
int
-aH
short
-aB
char
-函数名字符串的开始(:
)xfer
列表
是要发送的数据似乎是合理的,实际上它似乎被解释为要发送的字节列表
由于SPI倾向于并行发送和接收,进一步阅读代码会让我相信
列表中的每个值将被发送特定字节时接收到的字节所取代。这很奇怪,但这对您来说是SPI。我相信这行代码是关键:
PyArg_ParseTuple(args, "O|IHB:xfer", &list, &speed_hz,
&delay_usecs, &bits_per_word)
告诉我们格式化字符串意味着:
O
-Python对象
|
-表示以下选项是可选的
I
-一个int
H
-ashort
B
-achar
:
-函数名字符串的开始(xfer
)
其中,假设列表
是要发送的数据似乎是合理的,实际上它似乎被解释为要发送的字节列表
由于SPI倾向于并行发送和接收,进一步阅读代码会让我相信列表中的每个值将被发送特定字节时接收到的字节所取代。这很奇怪,但这是你的SPI