立即注册 找回密码

微雪课堂

搜索
微雪课堂 首页 树莓派 查看内容

树莓派系列教程18:SPI

2015-9-2 09:49| 发布者: MyMX1213| 查看: 44065| 评论: 5|原作者: MyMX1213

摘要: 本章介绍树莓派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传输。


401

顶一下

刚表态过的朋友 (401 人)

相关阅读

发表评论

最新评论

引用 游客 2018-11-14 16:04
spi可以连接两个相同的spi设备么,比如连接两个RFID或者两个显示屏
引用 游客 2018-3-24 17:42
-------------- split line ---------------------------------------------------------
solution:
  reference: stackoverflow ---  fatal-error-python-h-no-such-file-or-directory
  do:            sudo apt-get install python3-dev
--------------------- split line ------------------------------------
install again:
  $ sudo python3 setup.py install
======== finish ================
引用 游客 2018-3-24 17:40
--------------- setup.py install error: -----------------------
        spidev_module.c:20:20: fatal error: Python.h: No such file or directory
         #include <Python.h>
                                             ^
        compilation terminated.
        error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
-------------- split line ---------------------------------------------------------
solution:
  reference: stackoverflow  --search-->  fatal-error-python-h-no-such-file-or-directory
  do:            sudo apt- ...
引用 游客 2017-8-11 08:54
http://www.waveshare.net/wiki/Pioneer600
引用 hahahaha 2017-8-10 20:13
给个代码链接吧谢谢

查看全部评论(5)

树莓派

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2019-8-20 09:07 , Processed in 0.020677 second(s), 19 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc & Style Design

返回顶部