• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

为什么SPI读的时候要先发送一个空字节?

小白爱32 2019-05-07 浏览量:4122

如题,为什么SPI读的时候要先发送一个空字节?​

TIM图片20190506211101.png

1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 建议你看看协议,spi 收发是同时进行的,一个 clk 时钟,发送一个bit,同时接受一个bit,所以要接受几个字节,就要发几个字节
    • 发布于 2019-05-07
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:5
  • SPI接口属于同步串行通信,接收数据时向总线发送的数据会被自动忽略掉,但主机不做点什么总线的时钟线就没有时序,所以就要给他发Dummy_Byte
    • 发布于2019-05-07
    • 举报
    • 评论 0
    • 3
    • 0

  • 因为你用的芯片的SPI带有环形缓冲,也就是要读一个数据时,首先要发一个数据,才能把要读的数据推出来。你这个就是要读数据,所以要发一个伪指令的空字节。
    • 发布于2019-05-07
    • 举报
    • 评论 0
    • 3
    • 0

  • 因为这是个收发函数,所以在读取时也是需要写入参数的,那么读取的话写入参数就是空
    • 发布于2019-05-07
    • 举报
    • 评论 0
    • 1
    • 0

  • 发一个空是为了在CLK总线上产生时钟,给从机的SPI信号提供时钟用的,从机SPI不会自己产生CLK信号的
    • 发布于2019-05-07
    • 举报
    • 评论 0
    • 1
    • 0

  • 这上面写了,这是为了读取一个字节的,SPI这种通信方式一定是全双工的,主机要想从从机那里得到一个字节,就必须提供给从机一个字节的时钟,唯一方法就是发一个无用的字节过去
    • 发布于2019-05-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

为什么SPI读的时候要先发送一个空字节?