STM32--SPI通信协议(3)SPI通信外设

前言

硬件SPI:通过硬件电路实现,所以硬件SPI速度更快,有专门的寄存器和 库函数 ,使用起来更方便。

软件SPI: 也称模拟SPI,通过程序控制IO口电平模拟SPI时序实现,需要程序不断控制IO电平翻转,所以速度会比较慢,受单片机主频和单片机IO 电平最快翻转 速率影响,需要自己写底层逻辑,比较麻烦。 硬件SPI用的比较多

软件模拟较多的通讯是IIC和CAN,IIC是因为本身硬件IIC的速率不高,加上之前的STM芯片硬件IIC有点问题,导致很多人都自己手搓 底层通讯 ,尽管现在STM已经解决了这个问题,但是现在使用软件IIC还是非常常见。

一、SPI外设简介

16位数据帧:最长见的是8位数据帧,也就是一次发送8个字节,而16位数据帧就是一次发送16个字节;

时钟频率:外设时钟(APB2的PCLK是72MHz,APB1的PCLK是36MHz)/ 分频系数;

SPI1挂载在APB2上,其他挂载在APB1上;

iis:一种数字音频传输的协议(小容量与中容量产品上不支持iis协议);

二、SPI框图

右上角是数据的传输电路:发送数据先写入发送缓冲区(TDR),再转到移位寄存器发送,发送的同时接收数据,接收到的数据转到接收缓冲区(RDR),再从RDR读取数据,从而实现无延迟的连续传输。

寄存器:

LSBFIRST:决定高位先行还是低位先行;

SPE:SPI使能;

BR:配置波特率;

MSTR:配置主从模式(1:主模式,2:从模式);

CPOL、CPHA:选择SPI的4种模式;

TXE:发送寄存器空;

RXNE:接收寄存器非空;

NSS:实现多主机;

三、SPI基本结构

TDR数据整体转入移位寄存器的时候会置TXE标志位;

移位寄存器数据整体转入RDR的时候会置RXNE标志位;

SS从机选择引脚使用GPIO模拟;

四、主模式全双工连续传输

五、非连续传输

1、等待TXE为1;

2、写入发送的数据至TDR;

3、等待RXNE为1;

4、读取RDR接收的数据;

相关推荐
朱嘉鼎20 小时前
状态机的介绍
c语言·单片机
清风66666621 小时前
基于单片机的噪声波形检测与分贝测量仪设计
单片机·嵌入式硬件·毕业设计·课程设计
易享电子1 天前
基于单片机车窗环境监测控制系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
三佛科技-134163842121 天前
LED氛围灯方案开发MCU控制芯片
单片机·嵌入式硬件·智能家居·pcb工艺
小莞尔1 天前
【51单片机】【protues仿真】基于51单片机主从串行通信系统
c语言·单片机·嵌入式硬件·物联网·51单片机
Hello_Embed1 天前
STM32 环境监测项目笔记(一):DHT11 温湿度传感器原理与驱动实现
c语言·笔记·stm32·单片机·嵌入式软件
三佛科技-134163842121 天前
便携式榨汁机方案开发,榨汁机果汁机MCU控制方案设计
单片机·嵌入式硬件·智能家居·pcb工艺
yongui478341 天前
基于TMS320F28027实现光伏MPPT控制
单片机·嵌入式硬件
炸膛坦客1 天前
Cortex-M3 内核 MCU-STM32F1 开发之路:(一)单片机 MCU 的构成,包括 FLASH 和 SRAM 的区别,以及引脚类型
stm32·单片机·嵌入式硬件
A9better1 天前
嵌入式开发学习日志39——stm32之I2C总线物理层与常用术语
stm32·单片机·嵌入式硬件·学习