你可以用示波器测量一下,看是否会自己产生片选信号。
SPI能否读写硬件成功,和其是否自动片选没有任何关系,主要是看SPI时序是否和硬件匹配上。
你首先需要看你的SPI设备的时序,主要注意:时钟默认时电平高低,数据采样时,是上升沿采样还是下降沿采样。数据接收时是哪种时钟沿采样。片选是发送一个数据就拉高,还是整个命令期间始终保持低。时钟最大频率多少。送入命令后,数据是以何种方式返回的。
写个发送命令,看看时序是否和你的设备匹配好。
SPI接收数据需要注意,接收数据时,先发送命令,此时不会有任何数据返回,再次发送数据时,命令才会返回。所以接收数据需要在SPI发送数据后读取FIFO(需要发送数据产生的时钟来收数据到FIFO),不能不发数据只读FIFO,所以SPI接收到的数据会比命令晚一个周期。