TA的每日心情 | 慵懒 前天 10:54 |
---|
签到天数: 186 天 连续签到: 2 天 [LV.7]常住居民III
|
本帖最后由 stm1024 于 2024-4-5 19:59 编辑
SPI也是很多芯片之间的一种通讯模式,其基本知识这里就不再赘述了。树莓派上也带有SPI的接口,这次测试一下在树莓派5上使用SPI的方法。
1. 硬件连接
首先得首先,需要在raspi-config中打开SPI接口,这个在前面串口、I2C等提到过多次,不再专门截图了。
这里使用的硬件环境是树莓派的转接板,一个面板板,以及一个逻辑分析仪。
逻辑分析仪配置如下,然后将其与树莓派转接板连接起来,逻辑分析仪上的MISO和MOSI分别与树莓派上对应连接,此处树莓派是Master,逻辑分析仪是Slave,SCLK也要对应连接,最重要的是,一定要注意将逻辑分析仪的GND与树莓派的GND相连。
2. 软件环境
软件环境准备使用Python,然后对应的库是spidev,通常默认是安装的,如果没有,可以尝试安装一下:
- sudo apt-get install python3-spidev
复制代码 如下图所示,这种情况是已经安装后的效果:
然后是在Geany编写代码:
- from time import sleep
- import spidev
- from signal import pause
- spi = spidev.SpiDev()
- spi.open(0, 1)
- spi.max_speed_hz = 1000
- spi.mode = 0b00
- to_send = range(0,256)
- spi.xfer(to_send)
- spi.close()
- pause()
复制代码 这里要说明一下open中的参数,首先官方手册中(https://pypi.org/project/spidev/)说明如下:
其效果是:Connects to the specified SPI device, opening /dev/spidev<bus>.<device>
其中bus和device,我们可以通过如下方式查看:
可以看到,有两个spi设备,我们这里要用到的就是/dev/spidev0.1,所以bus是0,而device为1。
回到上述的代码,可以知道是在总线上发送0x00~0xff的字节,捕捉效果如下:
展开看下:
|
|