![6daa51726f308698c7dd4a35de28069f.png](https://img-blog.csdnimg.cn/img_convert/6daa51726f308698c7dd4a35de28069f.png)
1、SPI简介
ME32F030支持扩展的 SPI (Serial Peripheral interface)接口,它可以支持标准的 SPI 操作,兼容 4 线的 SSI (SynchronousSerial Interface )。该接口允许多主、从机总线模式,但同一时刻,只有一个主/从机在发送数据。数据传输支持 4 位 到 16 位全双工模式。外设时钟(SPI_PCLK)由系统时钟(system clock)提供,并受控于 SYSAHBCLKDIV 寄存器。主要功能如下:
•支持标准的SPI,兼容4线的SSI
•同步串行通信
•支持主/从机模式
•深度为8帧的先进先出FIFO(First In First Out)缓存器
•每帧数据长度4位到16位
SPI由4个管脚负责通信,分别是:
SCK:同步主机和从机的时钟,由主机输出时钟。
SSEL:片选线,由主机决定使能要通信的从机,同一时间只能选中一个从机。
MISO:主机输入,从机输出数据。
MOSI:从机输入,主机输出数据。
SPI管脚的具体功能如下图所示:
![0962dd92327af953c3973ed93cd9d215.png](https://img-blog.csdnimg.cn/img_convert/0962dd92327af953c3973ed93cd9d215.png)
图1
2、SPI寄存器
在单片机的开发过程中,我们可能都用过模拟串口。同理SPI也是可以通过端口来模拟实现的,但是笔者并不推荐这么做。因为SPI外设的SCK主频一般都是M级别以上,通过端口模拟的话,时序要求较高,模拟SPI通信的可靠性不如硬件SPI稳定。因此还是推荐优先使用单片机提供的硬件SPI。ME32F030就有一系列寄存器来实现SPI功能,其包含的寄存器如图所示:
![4050c7494fc0d108c702984fb398a779.png](https://img-blog.csdnimg.cn/img_convert/4050c7494fc0d108c702984fb398a779.png)