使用spi.xfer2()
功能,我想从我的覆盆子pi向NMEA格式的设备发送一个句子,它有一些连接到它的传感器用于划船目的。
以下是我想传达的句子的一般形式:
'$--VHW,,T,,M,5.0,N,10.0,K*hh'
有没有办法将此字符串转换为此函数所需的格式?我应该使用另一个函数将这些数据输出到我们的设备吗?
答案 0 :(得分:0)
您需要查找传感器的接口说明。对于如何通过SPI线路进行寻址,它们将有一个非常特殊的规范。 频率,时序,极性,名称很少,然后主要是SPI寄存器格式。没有通用的解决方案。
通常,如果要传输一个有效负载字节,则通过SPI传输12或16位,其中附加位包含控制信息。
这是我如何传输到DA转换器(它是读取,而不是写入,但这并不重要):
self.spi.cshigh=False
self.spi.max_speed_hz=500000
self.spi.mode=0
self.spi.bits_per_word=8
self.spi.open(0,0)
for i in range(len(values)):
xferWord = [0x01,0x80,0x00]#single ended, channel 0
self.spi.xfer(xferWord)
values[i] = (0x03 & xferWord[1])<<8
values[i] |= (0xff & xferWord[2])
time.sleep(0.01)
self.spi.close()