STM32---SPI(DMA)通信的总结(库函数操作) 本文主要由7 项内容介绍SPI 并会在最后附上测试源码供参考: 1
SPI 的通信协议 2
SPI 通信初始化(以STM32 为从机,LPC1114 为主机介绍) 3
SPI 的读写函数 4
SPI 的中断配置 5
SPI 的SMA 操作 6
测试源码 7
易出现的问题及原因和解决方法 一、 SPI 的通信协议 SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换
SPI 接口一般由4 根线组成,CS 片选信号(有的单片机上也称为NSS),SCLK 时钟信号线,MISO 数据线(主机输入从机输出),MOSI 数据线(主机输出从机输入),CS 决定了唯一的与主设备通信的从设备,如没有 CS 信号,则只能存在一个从设备,主设备通过产生移位时钟信号来发起通讯
通讯时主机的数据由MISO 输入,由MOSI 输出,输入的数据在时钟的上升或下降沿被采样,输出数据在紧接着的下降或上升沿被发出(具体由SPI 的时钟相位和极性的设置而决定)
二、 以 STM32 为例介绍 SPI 通信 1
STM32f103 带有 3 个 SPI 模块其特性如下: 2 SPI 初始化 初始化 SPI 主要是对 SPI 要使用到的引脚以及 SPI 通信协议中时钟相位和极性进行设置,其实 STM32 的工程师已经帮我们做好了这些工作,调用库函数,根据自己的需要来修改其中的参量来完成自己的配置即可,主要的配置是如下几项: 引脚的配置 SPI1 的 SCLK, MISO ,MOSI 分别是 PA5,PA6,PA7 引脚,这几个引脚的模式都配置成 GPIO_Mo de_AF_PP 复用推挽输出(关于 GPIO 的 8