STM32---SPI通信协议(小白入、含源码)

写在前面:在单片机的学习过程中,各种通信协议的学习是必不可少的,在前面我们学习了串口通信、IIC通信,本节我们来认识一下SPI通信协议。包括其SPI基本概念、NORFLASH芯片的介绍以及相关的例程实验。

目录

一、SPI介绍

1.1什么是SPI?

1.2SPI结构框图

1.3SPI工作模式

 1.4SPI工作寄存器

二、NORFLASH介绍

2.1NOR FLASH简介

2.2NM25Q128简介

2.3NOR FLASH的工作时序

 三、硬件设计

四、程序设计

4.1SPI配置步骤

4.2NM25Q128配置步骤 

4.3相关代码

五、现象

一、SPI介绍

1.1什么是SPI?

        SPI全称为: Serial Peripheral interface;其中文翻译为:串行外设设备接口,是一种高速的、全双工的、同步的通信总线;

        我们前面学习了IIC通信,STM32---IIC通信协议(含源码,小白进)_stm32 iic-CSDN博客再此,将SPI同IIC做出对比:

SPI IIC
通信方式

同步、串行、全双工

同步、串行、半双工
总线接口 MOSI、MISO、SCL、CS SDA、SCL
拓扑结构 一主多从、一主一从 多主从
从机选择 片选引脚 SDA设备地址片选
通信速率 一般500MHz以下 100KHz、400KHz、3.4MHz
数据格式 8/16位 8位
传输顺序 MSB/LSB MSB

1.2SPI结构框图

相关引脚:

 MOSI:输出数据线;

 MISO:输入数据线;

 SCK:时钟线,由主设备产生。

 NSS/CS:从设备片选信号,由主设备产生。

STM32F103引脚对应SPI:

引脚 SPI1 SPI2 SPI3
NSS PA4 PB12 PA15
CLK PA5 PB13 PB3
MISO PA6 PB14 PB4
MOSI PA7 PB15 PB5

SPI工作原理:

        在从机与主机内部都含有一个移位寄存器,主机通过它的SPI串行寄存器写入一个字节来发起一次传输。串行移位寄存器通过MOSI将字节按位进行传输给从机,从机也将自己的串行移位寄存器的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就能够发生交换。

        外设的写与读操作时同步进行的,如果只是写操作,主机可以忽略接受到的数据;如果只是读操作,则需要发送一个空字节引发进行从机传输。   

 SPI具有三种传输方式:全双工、半双工以及单工;

全双工通信,就是在任何时刻,主机与从机之间都可以同时进行数据的发送和接收。
单工通信,就是在同一时刻,只有一个传输的方向,发送或者是接收。
半双工通信,就是在同一时刻,只能为一个方向传输数据 。

1.3SPI工作模式

        在前面学习IIC通信时,STM32与具有IIC接口的设备进行通信时,必须遵循IIC的通信协议。那同理我们使用SPI接口进行通信时,也需要遵循对应的通信协议,也就是对应的读与写时序。SPI通信协议具有4种工作模式。

        首先,在学习4种工作模式之前,先了解两个概念:时钟极性(CPOL)与时钟相位(CPHA);

时钟极性:是指当主机没有数据传输时即空闲状态下,SCL线的电平状态;若空闲状态为高电平 ,CPOL为1;若空闲状态为低电平,则CPOL为0;

时钟相位:在同步通信时,数据的采集与变化都是在时钟边沿进行的,也称为边沿协议(了解边沿协议与电平协议的区别),那每个时钟周期具有两个边沿,分别为上升沿与下降沿,那么数据的变化与采样就安排在两个不同的边沿,由于数据的产生和采样需要一定的时间,那么如果我们在第一个边沿把数据输出了,从机只能在第二个边沿进行采样。

CPHA的实质是指:采样时刻,如果CPHA=0就表示采样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值