文档库 最新最全的文档下载
当前位置:文档库 › 树莓派系列教程18:SPI

树莓派系列教程18:SPI

一、开启树莓派spi功能

1 sudo raspi-config

选择Advanced Options -> SPI -> yes 启动SPI内核驱动运行lsmod命令,可以看到spi模块已启动

在/dev路径下面,我们可以发现两个spi设备

spi 管脚如下如所有,左边方框的管脚分别为MOSI MISO SCLK,左边CE0,CE1为两个片选管脚,分别对应上图中的spidev0.0,spidev0.1两个设备。对这两个文件读写操作即可控制spi 设备。

二、SPI 编程

Pioneer 600扩展板配备一款0.96inch,128864分辨率的oled 显示屏,通过SPI 控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi 的操作函数。如果各位有兴趣可以下载程序,研究一下。如果程序有什么写得不好的地方,还望各位指正。

1、bcm2835

1 bcm2835_spi_begin(); //启动spi 接口,设置spi 对应管脚为复用功能

2 bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST); //高位先传输

3 bcm2835_spi_setDataMode(BCM2835_SPI_MODE0); //spi 模式0

4 bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_128); //分频,

5 bcm2835_spi_chipSelect(BCM2835_SPI_CS0); //设置片选

6

bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW); //设置片选低电平有效 1 uint8_t bcm2835_spi_transfer(uin

t_t value) 传输一个字节

2 void bcm2835_spi_transfernb(char *tbuf,char *rbuf,uint32_t len) 传输n 字节 2、python

安装spi 库

https://https://www.wendangku.net/doc/685444564.html,/pypi/spidev/3.1

下载spidev 库,复制到树莓派,并行运行如下命令解压安装

1 tar –zxvf spidev-3.1.tar.gz

2 cd spidev

3 sudo python setup.py install 安装imaging 库

1 sudo apt-get install python-imaging

python-spidev 的使用方法:

1 import spidev

导入库

1 bus=0

2 device=0

3 spi=SPI.SpiDev(bus,device)

打开spi 设备,此处设备为/dev/spi-decv0.0

1 spi.readbytes(n)

从SPI 设备读取n 字节

1 spi.writebytes(list of value)

将列表的数据写到SPI 设备

1 spi.xfer(list of values[, speed_hz, delay_usec, bits_per_word]) 执行SPI 传输。

相关文档