最近在学习stm32的spi方式。了解到了spi通信方式实际上是主机的发送寄存器和从机的发送寄存器以移位的方式进行数据交换,是基于来自主机的时钟来完成每一个动作的。
那如果我在主机里装载了数据,而从机是没有装载数据的,那这样子的话,假设数据是8bit的,在8个clock之后,主机在从机那交换得到的是一个什么样的返回值?是全1呢?还是说
全0?或者是一串不确定的数?我觉得在对从机初始化之后,它的发送寄存器会有一个初始值,如果从机没有写数据修改它的话;那主机得到的就是这个(从机发送寄存器的)初始值了。
在spi只读的时候不需要理会发送过去的值,只写的时候就不理会返回的值。请问这样的理解正确吗?不正确的话请告诉我哪里错了,错在哪了。谢谢谢谢
我也不是很熟悉STM32的SPI通信方式,只能说说我对SPI通信的一个理解。
我的理解是,如果master 给了slave clock而slave那边数据还没有准备好的话,slave不会去drive它的data output(比如输出一直是high),那么master就知道slave没有数据出来。
SPI应该能够同时读写,所以不会只读的时候不管写,只写的时候不管读。
这个问题关于STM32的SPI的设计,所以我的建议是check STM32的data sheet看看有没有相应的描述。
嗯嗯,好的。谢谢你的建议。