初识STM32 SPI

串行外设(SPI) :接口是一种全双工同步串行外设,只允许嵌入式处理器与各种外围设备以串行方式进行通信,数据交换。基于SPI接口的外围设备主要包括Flash RoM,RAM,A/D转换器,网络控制器,MCU。


一般使用四根线:
串行时钟线SCK,
主机输入/从机输出数据线MISO,
主机输出/从机输入数据线MOSI,
低电平有效的从机选择线SSEL,


工作原理 :
SPI基本结构相当于两个8位移位寄存器的首位相接,构成16位的环形移位寄存器。从而实现了主机与从机的数据变换。
 


时钟信号的相位和极性 :
SPI_CR寄存器的CPOL和CPHA位,能够组合成四种可能的时序关系。
CPOL 决定SCK的有效脉冲方式(正脉冲,负脉冲),
CPHA决定数据线MOSI什么时候输出数据或采集数据。
 


SPI主模式通信 :
配置步骤 :
1.通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率.
2.选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系.
3.配置DFF位来定义8位或16位数据帧格式.
4.配置SPI_CR1寄存器的LSBFIRST位定义帧格式.
5.如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输检查间应把NSS脚连接到高电平.在软件模式中,需设置SPI_CR1寄存器的SSM和SSI位.如果NSS引脚工作在输出模式,则需设置SSOF位.
6.必须设置MSTR和SPE位(只当NSS脚被连到高电平,这些位才能保持置位).
在这个配置中,MOSI脚是数据输出,而MISO是数据输入.




数据发送过程:
1. 当一字节写进发送缓冲器时,发送过程开始.
2. 再发送第一个数据位时,数据字被并行地(通过内地总线)传入移位寄存器,而后串行地移出到MOSI脚上:MSB在先还是LSB在先,取决于SPI_CR1寄存器中的LSBFIRST位.数据从发送缓冲器传输到移位寄存器时TXE标志被置位,如果设置SPI_CR1寄存器中的TXEIE位,将产生中断.
3. 在试图写发送缓冲器之前,需确认TXE标志应该是1.


数据接收过程:
当数据传输完成时:
1. 移位寄存器里的数据传送到接收缓冲器,并且RXNE标志被置位。如果SPI_CR2寄存器中RXEIE位被设置,则产生中断。

 

2. 读SPI_DR寄存器时,SPI设备返回接收到的数据字。读SPI_DR寄存器将清楚RXNE位。

 

 

未完待续 。。。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值