
利用SPI读写Flash指令的过程中,当主机发送指令后,为什么还需要再发送“任意的数据”,才能够获取指令解释后的返回值。 当读取Flash的JEDEC_ID指令时,按FLASH的ID指令时序图可知,得到的数据分别为:M7-M0,ID15-ID8,ID7-ID0。 问题1:主机给Flash发送JEDEC_ID指令以后,Flash内部会把JEDEC_ID指令解释成M7-M0,ID15-ID8,ID7-ID0,,那么这些数据也就应该时一并返回来的,为什么还需要再向FLASH发送其他的“任意数据”才能够读取该指令解释得到的数据,M7-M0,ID15-ID8,ID7-ID0???如图中所示 问题2:这样再发送数据过去,难道不会覆盖了JEDEC_ID指令得到的M7-M0,ID15-ID8,ID7-ID0吗? |
SD卡初始化第一次初始化后再次初始化时会失败。
关于三轴陀螺仪 I3G4250D
STM32N6570-DK开发板,哪里还有卖的?
STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能 寄存器USEF=1
STM32G070CBT6使用硬件SPI无法读出W25Q128的ID
STM32的TIM触发SPI的DMA发送使用NSS时MSSI的问题
ST25R3916有快速读取吗?
32bit SPI使用DMA 初次不触发SPI中断 第二次发送不触发DMA中断
STM32c031c6 SPI Slave Transmit Only模式的疑问
USB Device + FatFS + 外挂 flash
首先,SPI外设是同步外设,简单可理解为数据交互的时钟由主设备提供。
其次,基于主设备提供时钟,所以从设备在返回数据时,必须需要主设备提供时钟;
最后,主设备发送时钟的方式,与发送一个dummy数据的方式是相同的
结论:如代码所呈现的样子。
不知道楼主明白了吗?
还有疑问,再回帖即可
因此,主设备发送完成命令后,从设备收到解析并准备好回应数据,需要主设备再次发出时钟(主设备的数据是不关心了),才能将数据打到总线上,让主设备收到。
主设备怎么知道从设备什么时候要发送数据从而发送时钟?
从设备有响应时间,这个看规格书,一般纯硬件的都很快。 有些器件需要发命令查询状态,READY后才能读到数据。FLASH的是读写,所以操作频率不应该快与它的相应时间,就可以接着读。