树莓派默认是将SPI和I2C功能关闭的,如果你编写SPI的程序,但是SPI模块没打开,可能会出现如下错误:
ERROR: could not insert 'spi_bcm2708': No such device
首先打开终端输入指令
sudo raspi-config
如下图选中,回车
退出配置界面(没有截图,也可以关闭终端重新打开),输入指令
ls /dev/spi*
可以查看当前打开了哪些spi口(注意:指令中开头是小写的L,不是大写的i ls[空格]/dev/spi* 不要漏了空格)
可以看到上图中我的电脑默认打开的是 SPI0
这时如果你只是用一个SPI口,那就可以去编程了,后面的主要讲解打开第二个SPI口
继续在终端输入
sudo nano /boot/config.txt
打开文件在最后写入
dtoverlay=spi1-3cs
(注意:要是enable_uart=1前面有#符号的,需要删除)
然后按下Ctrl键和O(英文字母O),提示是否要保存,按回车,在按下Ctrl+X,然后重新启动树莓派查询一下
ls /dev/spi*
图中添加的dtoverlay=spi1-3cs 表示:使能SPI1,可打开/dev/spidev0.0, spidev0.1, spidev0.2
当把dtoverlay=spi1-3cs改为dtoverlay=spi1-2cs 表示:使能spi1,但只能打开/dev/spidev0.0, spidev0.1
spidevX.Y的解释: X表示spi0或者SPI1, Y表示CE0,CE1,CE2
树莓派的SPI0中,模式0,1,2,3都可以使用,
SPI1中,只有模式0,2可以使用,1,3在配置时会报错
使用终端指令
ls /dev/spi*
可以查看当前打开了哪些spi口(注意:指令中开头是小写的L,不是大写的i ls[空格]/dev/spi* 不要漏了空格)
如图:我打开了SPI0 的 0 ,1 SPI1的0,1,2
以下是大神给的截图