匿名
未登录
登录
丢石头百科
搜索
查看“树莓派系列教程:SPI”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
树莓派系列教程:SPI
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
一、 <!--[endif]-->开启树莓派spi功能 <syntaxhighlight lang="python"> sudo raspi-config</syntaxhighlight> 选择 Advanced Options -> SPI -> yes 启动SPI内核驱动 运行lsmod命令,可以看到spi模块已启动 [[File:095139awr1kb3xl12qbj9l.png]] 在/dev路径下面,我们可以发现两个spi设备 [[File:095302gwoyknf3802tt2ms.png]] spi管脚如下如所有,左边方框的管脚分别为MOSI MISO SCLK,左边CE0,CE1为两个片选管脚,分别对应上图中的spidev0.0,spidev0.1两个设备。对这两个文件读写操作即可控制spi设备。 [[File:095303suqzuzo775ujru0u.png]] 二、SPI编程 Pioneer 600扩展板配备一款0.96inch,128864分辨率的oled显示屏,通过SPI控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi的操作函数。如果各位有兴趣可以下载程序,研究一下。如果程序有什么写得不好的地方,还望各位指正。 1、bcm2835 <syntaxhighlight lang="python"> 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); //设置片选低电平有效</syntaxhighlight> <syntaxhighlight lang="python"> uint8_t bcm2835_spi_transfer(uint_t value) 传输一个字节 void bcm2835_spi_transfernb(char *tbuf,char *rbuf,uint32_t len) 传输n字节</syntaxhighlight> 2、python 安装spi库 https://pypi.python.org/pypi/spidev/3.1 下载spidev库,复制到树莓派,并行运行如下命令解压安装 <syntaxhighlight lang="python"> tar –zxvf spidev-3.1.tar.gz cd spidev sudo python setup.py install </syntaxhighlight> 安装imaging库 <syntaxhighlight lang="python"> sudo apt-get install python-imaging</syntaxhighlight> python-spidev的使用方法: <syntaxhighlight lang="python"> import spidev</syntaxhighlight> 导入库 <syntaxhighlight lang="python"> bus=0 device=0 spi=SPI.SpiDev(bus,device)</syntaxhighlight> 打开spi设备,此处设备为/dev/spi-decv0.0 <syntaxhighlight lang="python"> spi.readbytes(n)</syntaxhighlight> 从SPI设备读取n字节 <syntaxhighlight lang="python"> spi.writebytes(list of value)</syntaxhighlight> 将列表的数据写到SPI设备 <syntaxhighlight lang="python"> spi.xfer(list of values[, speed_hz, delay_usec, bits_per_word])</syntaxhighlight> 执行SPI传输。 == 系列教程 == {{Raspberry Pi Study}}
该页面使用的模板:
模板:Raspberry Pi Study
(
查看源代码
)
返回至
树莓派系列教程:SPI
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志