运行示例程序
大家来运行例程,看看会发生什么?
$ sudo python3 test_spi.py
在旭日X3派的终端中,输入运行例程的指令,接下来我们就可以看到通过SPI传输并收到的数据啦,相当于是左手传递给右手,自己给自己循环传输数据了。
代码解析
test_spi.py:
#!/usr/bin/env python3
import sys
import os
import time
# 导入spidev模块
import spidev
def BytesToHex(Bytes):
return ''.join(["0x%02X " % x for x in Bytes]).strip()
def spidevTest():
# 设置spi的bus号(0, 1, 2)和片选(0, 1)
spi_bus = input("Please input SPI bus num:")
spi_device = input("Please input SPI cs num:")
# 创建spidev类的对象以访问基于spidev的Python函数。
spi=spidev.SpiDev()
# 打开spi总线句柄
spi.open(int(spi_bus), int(spi_device))
# 设置 spi 频率为 12MHz
spi.max_speed_hz = 12000000
print("Starting demo now! Press CTRL+C to exit")
# 发送 [0x55, 0xAA], 接收的数据应该也是 [0x55, 0xAA]
try:
while True:
resp = spi.xfer2([0x55, 0xAA])
print(BytesToHex(resp))
time.sleep(1)
except KeyboardInterrupt:
spi.close()
if __name__ == '__main__':
print("List of enabled spi controllers:")
os.system('ls /dev/spidev*')
spidevTest()
在python中使用spidev这个库,初始化X3Pi的SPI,之后使用xerf2发送数据,同时接收数据,并打印出来,会发现打印出来的就是我们发送的。
全部0条评论
快来发表一下你的评论吧 !