我采用CUBE配置的SPI外设,对NSS引脚选择了硬件输出,这种方式对读取命令没有影响,但是对写命令有,当我发送写是能命令后,读取状态寄存器的值一直都是忙,我猜测这可能是硬件控制NSS引脚后,对于HAL_SPI_Transmit等命令,内部没有实现NSS的拉高和拉低操作,所以才会出现这种情况,证据就是我将NSS设置为软件输出,自己控制后,读取就正常了。
读一下芯片的数据手册,关于SPI硬件描述中的一段如下
当SSM=0,采用硬件输出NSS信号时,一旦MASTER启动通信,NSS就被输出为低电平,直到SPI被禁止!!