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

2019-07-14 17:00发布

如图所示:

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



2:同样,接收数据的时候要往发送缓冲区写入0xFF
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
djw200988
1楼-- · 2019-07-15 15:36
SPI是环形移位寄存器的数据交换,你得给从机发数据(一般发0),才能读得需要的从机数据,同时发数据也提供时钟
naiztycheng
2楼-- · 2019-07-15 15:37
SPI只有一个sbuf,不想UART收发各有一个缓存。当你接受的时候,向缓存里面写入0xff(其实别的也可以,只要另一个设备忽略你发送的信息即可。)

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

这张图是官方的图。收发各有一个buf。当sck发送心跳时,一个心跳移动一位,这其实就是个串行移位寄存器。
tianyou15
3楼-- · 2019-07-15 21:05
收发是同时的,,,发0xff是保持发送端为高电平,,,无效数据
kdyangcheng
4楼-- · 2019-07-15 21:17
查手册可以找到答案

一周热门 更多>