手把手之STM32SPI接口(一)

简介: ●SPI总线 1、何为SPI     SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

SPI总线

1、何为SPI

    SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

    SPI是一个环形总线结构,由ss(cs)scksdisdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。

0?wx_fmt=png


2、SPI模型

    0?wx_fmt=png
1MOSI:主器件数据输出,从器件数据输入
2MISO:主器件数据输入,从器件数据输出
3SCLK :时钟信号,由主器件产生
4/SS:从器件使能信号,由主器件控制


3、SPI时序

    SPI接口有四种不同的数据传输时序,取决于CPOLCPHL这两位的组合下图表现了这四种时序0?wx_fmt=png

CPOL是用来决定SCK时钟信号空闲时的电平,CPOL0,空闲电平为低电平;CPOL1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样;CPHA1,在每个周期的第二个时钟沿采样。

     SPI主模块和与之通信的外设音时钟相位和极性应该一致。



STM32的SPI接口

1、接口特性

1)基于三条线的全双工同步传输

2)8位或者16位的数据帧

3)主模式或从模式

4)最先以为LSB或者MSB

5)SPI总线忙标志


2、功能说明

0?wx_fmt=png
0?wx_fmt=png
0?wx_fmt=png
NSS引脚可以选择软件管理,这样比较容易操作,而从器件的NSS引脚可以用单片机的一个GPIO口来驱动,只要将IO电平拉低就可以选中从器件


3、时序0?wx_fmt=png
注意,主器件的相位和极性一定要和从器件匹配。


4、将STM32配置成主器件

0?wx_fmt=png


5、寄存器

1)控制寄存器SPI_CR1

0?wx_fmt=png
0?wx_fmt=png
0?wx_fmt=png
0?wx_fmt=png

0?wx_fmt=png
0?wx_fmt=png

2)控制寄存器SPI_CR1

0?wx_fmt=png
0?wx_fmt=png



代码

1、初始化

0?wx_fmt=png
0?wx_fmt=png

2、收发数据

0?wx_fmt=png



相关文章
|
8天前
|
Perl
【ZYNQ】SPI 简介及 EMIO 模拟 SPI 驱动示例
【ZYNQ】SPI 简介及 EMIO 模拟 SPI 驱动示例
|
17天前
|
存储 编译器 API
大神们分享STM32的学习方法
大神们分享STM32的学习方法
48 0
|
7月前
|
存储 芯片 内存技术
STM32F0单片机快速入门十 用 SPI HAL 库读写W25Q128
STM32F0单片机快速入门十 用 SPI HAL 库读写W25Q128
|
7月前
|
存储 内存技术
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
STM32F0单片机快速入门九 用 I2C HAL 库读写24C02
|
7月前
|
芯片
STM32F0单片机快速入门六 用库操作串口(UART)原来如此简单
STM32F0单片机快速入门六 用库操作串口(UART)原来如此简单
|
7月前
|
存储 内存技术
STM32F0单片机快速入门八 聊聊 Coolie DMA
STM32F0单片机快速入门八 聊聊 Coolie DMA
|
7月前
|
存储 安全 Linux
STM32F0单片机快速入门一 ARM架构与STM32F0
STM32F0单片机快速入门一 ARM架构与STM32F0
|
8月前
|
芯片
No.2 STM32F429IGT6 固件库 CMSIS标准及库和STM32官方文档资料总结 (STM32F429/F767/H743)
No.2 STM32F429IGT6 固件库 CMSIS标准及库和STM32官方文档资料总结 (STM32F429/F767/H743)
|
10月前
|
缓存
STM32使用HAL库实现串口通讯——实战操作
STM32使用HAL库实现串口通讯——实战操作
187 0

热门文章

最新文章