目录

SPI库

这个库可以让你将Arduino作为主设备,其他外围设备作为从设备与主设备以串行方式进行通信及交换信息。

同步串行外设接口总线(SPI)的简介

同步串行外设接口总线(SPI)是用于MCU(微控制器)与一个或多个外围设备进行短距离快速通讯的同步串行数据协议。它也可以用于两个微控制器之间的通信。 SPI的连接始终是由一个主设备(通常是一个微控制器)来控制外围设备来进行。通常在所有设备上都有三条线,

给一个新的SPI设备写程序,你需要注意以下几点:

SPI标准是不严格的,所以每个设备实现功能时稍有不同。这意味着当你写代码时,要特别注意设备的数据表。一般来说,有三种传输模式。这些模式控制着数据是在SCK的上升沿采样,还是在SCK的下降沿采样(称为时钟相位),时钟信号在空闲时,是高电平还是低电平(称为时钟极性)。由相位和极性组合得到三种模式。SPI.setDataMode() 函数用于控制时钟极性和相位,根据此表:

模式时钟极性(CPOL)时钟相位 (CPHA)
000
101
210
311

当你的SPI参数设置正确,你只需要选择好需要的函数去控制你的设备,然后开始你的作品制作。这将被解释为您的设备数据表。

连接

在Arduino Duemilanove和其他基于ATmega168 / 328的板子上,SPI总线使用引脚10(SS),引脚11(MOSI),引脚12(MISO)和引脚13(SCK)。而在Arduino Mega板上,使用的是引脚50(MISO),引脚51(MOSI),引脚52(SCK)和引脚53(SS)。需要注意的是,即使你不使用SS引脚,必须将它的模式设置为输出;否则,SPI系统将会认为有一个外部主机将自己选择为从设备(从属模式),从而使库文件的控制失效。

它有可能使用其他脚比10脚,作为从机选择引脚SS。例如,Arduino的以太网扩展板使用引脚4来控制的SPI连接到主板上的SD卡,用引脚10来控制连接到以太网控制器。

函数

例子

参见

返回主菜单