最近有用到STM32F1的SPI单线单向主接收功能,SPI初始化时配置为SPI_Direction_1Line_Rx模式,但SPI却始终收不到正确数据,数据寄存器DR始终是0XFFFF,实测MISO引脚信号为0x0370,SCK,CS信号正常。尝试了很多方法参照别人的例程发现SPI相关GPIO不能都配置为GPIO_Mode_AF_PP模式,只有SCK配置为该模式,而MISO需配置为GPIO_Mode_IN_FLOATING模式。看到这个之后仿佛让我恍然大悟,结果却再次打脸,没有用!收到的数据还是0xFFFF。最后的最后将SPI的模式改为SPI_Direction_2Lines_RxOnly终于解决问题。我就奇怪为啥SPI_Direction_1Line_Rx模式会收不到数据?
从机模式没设置对吧,应该可以的,单线要不要cs是个问题.
我最近也发现这个问题了 用的ad芯片只有三根线 cs sck dout,dout也连了stm的MISO,后来发现使用SPI_Direction_1Line_Rx模式的时候,stm接收数据的线居然是MOSI线,查了资料才知道使用SPI_Direction_1Line_Rx模式时,如果STM是主机,那接收数据线是MOSI,如果是从机接收数据线才是MISO