SPI外设简介

  • STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担
  • 可配置8位/16位数据帧、高位先行/低位先行
  • 时钟频率: fPCLK / (2, 4, 8, 16, 32, 64, 128, 256)
  • 支持多主机模型、主或从操作
  • 可精简为半双工/单工通信
  • 支持DMA
  • 兼容I2S协议(数字音频信号传输的专用协议)

SPI框图

 

 首先移位寄存器,从右边的数据低位,从MOSI移出去;MISO数据移入到左边的数据高位,即移位寄存器是一个右移的状态。

接收、发送缓冲区实际上就是数据寄存器RDR、发送数据寄存器TDR,TDR和RTR占用同一个地址,统一叫作为DR。

波特率发生器主要是产生SCK时钟,内部主要是一个分频器,然后CR1寄存器的三个位BR0、BR1、BR2控制分频系数。

SPI基本结构 

TDR和RTR的配合,可以实现连续的数据流。

TDR数据整体转入移位寄存器的时刻,置TXE标志位;移位寄存器整体转入RDR的时刻,置RXNE标志位。

主模式全双工连续传输

 BIDMODE=0且RXONLY=0,TXE/RXNE/BSY的变化

这个图演示的是借助缓冲区,数据前仆后继,实现连续数据流的过程,但此流程比较复杂,不易封装。

非连续传输

BIDMODE=0且RXONLY=0时,TXE/BSY的变化

步骤分为以下:

1、等待TEX为1;

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

3、等待RXNE为1;

4、读取RDR接收的数据;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

¥sunrise

来自大牛的认可,是我梦寐以求的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值