【stm32】SPI通信简介

SPI通信

SPI简介部分

  • 所有SPI设备的SCK、MOSI、MISO分别连在一起

  • 从主机引出多根SS选择线,分别接到每个从机的SS输入端,主机的SS线都是输出,从机的SS线都是输入,SS线 是低电平有效,同一时间主机只能选择一个从机 只能置一个SS为低电平

  • SPI引脚的配置:输入引脚配置为推挽输出,输入引脚配置为浮空或上拉输入

  • MISO引脚、主机一个是输入,但是从机多个是输出,如果多个从机始终是推完输出,会导致冲突,在SPI协议里有一条规定,当从记得SS引脚为高电平,也就是未被选中时,他的MISO引脚必须切换为高阻态

移位示意图

在这里插入图片描述
移位输出,数据放到通信线上,就是放在了输出数据寄存器(时钟上升沿完成此过程)

在这里插入图片描述
采样输入,时钟下降沿,第一个时钟结束后的现象

在这里插入图片描述
八个时钟之后数据进行了交换

  • 如果只想发送不想接收

    • 发送同时接收,只是这个接收到数据我们不看他就行了
  • 如果只想接收不想发送

    • 接收的同时随便发送一个无用数据,用来置换从机的数据,可以发送0x00、0xFF
  • 对于SPI通信,在只进行发送或只进行接受的时候,会有一些资源浪费

SPI对字节流的规定
  • 不像I2C那样

    • 有效数据流第一个字节是寄存器地址

    • 之后依次是读写的数据,使用的是读写寄存器的模型

  • 在SPI中

    • 通常采用的是指令码加读写数据的模型
    • SPI起始后,第一个交换发送给从机的数据,一般叫做指令码,在从机中会定义一个指令集,当我们需要发送什么指令时,就可以在起始后第一个字节,发送指令集里面的数据
    • 这样就能指导从机完成相应的功能
  • 在SPI里也有和I2C一样的地址指针,每读写一个字节,地址指针自动加一

  • 由于SPI没有应答机制,所以交换一个字节后,就立刻交换下个字节就行了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值