STM32/STM8技术william hill官网
直播中

郎渐海

7年用户 268经验值
私信 关注
[问答]

为什么SPI在写的时候最后要去判断接收缓冲区呢?

如图所示:

1:为什么SPI在写的时候最后要去判断接收缓冲区呢?



2:同样,接收数据的时候要往发送缓冲区写入0xFF

回帖(11)

任娟娟

2018-10-11 09:14:45
大概是SPI这个通讯协议本质就是:移位操作,接收一位同时发一位……
个人理解,仅供参考
举报

张倩

2018-10-11 09:32:36
举报

李悛

2018-10-11 09:47:02

学习了。。。
支持使用库
举报

董薇

2018-10-11 10:03:04
自己写就行了
举报

姬房有

2018-10-11 10:09:42
这个建议楼主找个spi的基础知识看看先,然后再看程序
举报

吕钢格

2018-10-11 10:23:49
时序要求吧
举报

刘政玮

2018-10-11 10:34:16
读的时候也是需要发数据过去的
举报

任娟娟

2018-10-11 10:51:27
SPI是环形移位寄存器的数据交换,你得给从机发数据(一般发0),才能读得需要的从机数据,同时发数据也提供时钟
举报

李开心

2018-10-11 11:02:30
SPI只有一个***uf,不想UART收发各有一个缓存。当你接受的时候,向缓存里面写入0xff(其实别的也可以,只要另一个设备忽略你发送的信息即可。)

假设你是从机,如果主机没有刻意向SBUF里面写东西,那当你读数据时将读会status。

这张图是官方的图。收发各有一个buf。当sck发送心跳时,一个心跳移动一位,这其实就是个串行移位寄存器。
举报

杨杜昼

2018-10-11 11:13:18
收发是同时的,,,发0xff是保持发送端为高电平,,,无效数据
举报

李淑兰

2018-10-11 11:28:03
查手册可以找到答案
举报

更多回帖

发帖
×
20
完善资料,
赚取积分