树莓派系列教程:SPI
来自丢石头百科
一、 开启树莓派spi功能
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
bcm2835_spi_begin(); //启动spi接口,设置spi对应管脚为复用功能
bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST); //高位先传输
bcm2835_spi_setDataMode(BCM2835_SPI_MODE0); //spi模式0
bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_128); //分频,
bcm2835_spi_chipSelect(BCM2835_SPI_CS0); //设置片选
bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW); //设置片选低电平有效
uint8_t bcm2835_spi_transfer(uint_t value) 传输一个字节
void bcm2835_spi_transfernb(char *tbuf,char *rbuf,uint32_t len) 传输n字节
2、python
安装spi库
https://pypi.python.org/pypi/spidev/3.1
下载spidev库,复制到树莓派,并行运行如下命令解压安装
tar –zxvf spidev-3.1.tar.gz
cd spidev
sudo python setup.py install
安装imaging库
sudo apt-get install python-imaging
python-spidev的使用方法:
import spidev
导入库
bus=0
device=0
spi=SPI.SpiDev(bus,device)
打开spi设备,此处设备为/dev/spi-decv0.0
spi.readbytes(n)
从SPI设备读取n字节
spi.writebytes(list of value)
将列表的数据写到SPI设备
spi.xfer(list of values[, speed_hz, delay_usec, bits_per_word])
执行SPI传输。
系列教程
- 树莓派系列教程:人生若只如初见
- 树莓派系列教程:烧写镜像
- 树莓派系列教程:远程登录树莓派(SSH登陆/远程桌面登陆/串口登陆)
- 树莓派系列教程:更换软件源
- 树莓派系列教程:访问树莓派
- 树莓派系列教程:配置WiFi
- 树莓派系列教程:系统配置(raspi-config)
- 树莓派系列教程:中文输入法
- 树莓派系列教程:摄像头
- 树莓派系列教程:Linux常用命令以及vi/vim编辑器
- 树莓派系列教程:文件共享(samba)
- 树莓派系列教程:wiringPi、bcm2835、python库安装
- 树莓派系列教程:如何点亮一个LED灯(上)
- 树莓派系列教程:如何点亮一个LED灯(下)
- 树莓派系列教程:按键
- 树莓派系列教程:I2C
- 树莓派系列教程:I2C编程
- 树莓派系列教程:I2C总线控制BMP180
- 树莓派系列教程:Serial串口
- 树莓派系列教程:红外遥控
- 树莓派系列教程:RTC
- 树莓派系列教程:PCF8591 AD/DA
- 树莓派系列教程:SPI
- 树莓派系列教程:物联网之MQTT
- Alphabot树莓派教程:变身路由器
- Alphabot树莓派教程:刷LEDE(OpenWRT)系统变身路由器
- 树莓派引脚对照表
- SIM868 ppp拨号上网