- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、 开启树莓派 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
bcm2835_spi_begin(); //启动spi接口,设置spi对应
1
管脚为复用功能
bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST); /
2
/高位先传输
bcm2835_spi_setDataMode(BCM2835_SPI_MODE0); //spi模式
3
0
bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_128); //分
4
频,
bcm2835_spi_chipSelect(BCM2835_SPI_CS0);
5
//设置片选
bcm2835_spi_setChipSelectPolarity(BCM2
6 835_SPI_CS0, LOW); //设置片选低
电平有效
uint8_t bcm2835_spi_transfer(uin
1
t_t value) 传输一个字节
void bcm2835_spi_transfernb(char *tbuf,char *rbuf,uint32_t len) 传输
2
n 字节
2、python
安装 spi库
/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
导入库
1bus=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 传输。
原创力文档


文档评论(0)