spi的单线双向数据模式就是 MISO和MOSI只是用其中一根线进行数据交换。
在主机模式下,之前按照双线双向,先写一个假数据,然后接着读取一个字节,后来才发现这样是错的。
再后来,示波器上面看到了,只要切换到接收模式(单线双向模式下),原来CLK信号是一直就在输出了,源源不断(也就导致一直在不停接收数据),除非停止spi或者切回发送模式。
那么问题就是,如果需要使用随机单字节接收,是需要先停止spi,然后切换到接收模式,然后在使能spi,马上查看接收状态,是否接收完毕一字节,完毕则关闭spi。
上述的流程对于慢速的波特率情况下验证了没问题,波特率稍快后就不行了,因为判断接收完毕一字节的时候开销的时间可能会导致另外一个字节又开始接收了。
那如何使用STM32的SPI单总线?