利用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吗? |
STM32F4作为SPI从机,主机发送完数据后,从机没有正确进入中断
STM32F4作为SPI从机,在主机时钟结束后,MISO依然有输出。
L9663驱动开发
STM32mp157的spi问题
STM32MP135 使用HAL库 驱动2.4寸刷新率巨低,求大佬指点迷津
1.STMCWB 最新版本是否支持绝对值编码器?只能通过MCLIB库手动增加吗?2.基于ST FOC库的磁编码器(SPI出绝对角度信息)只跑速度环和电流环最简单
STM32H750 SPI主机收发数据结束时,MOSI跟随SCK有低脉冲问题
求助,关于STM32 HAL库 SPI怎么发送16位宽度数据问题
SPI从机发送数据错误
STM32f0 SPI无法通讯
首先,SPI外设是同步外设,简单可理解为数据交互的时钟由主设备提供。
其次,基于主设备提供时钟,所以从设备在返回数据时,必须需要主设备提供时钟;
最后,主设备发送时钟的方式,与发送一个dummy数据的方式是相同的
结论:如代码所呈现的样子。
不知道楼主明白了吗?
还有疑问,再回帖即可
因此,主设备发送完成命令后,从设备收到解析并准备好回应数据,需要主设备再次发出时钟(主设备的数据是不关心了),才能将数据打到总线上,让主设备收到。
主设备怎么知道从设备什么时候要发送数据从而发送时钟?
从设备有响应时间,这个看规格书,一般纯硬件的都很快。 有些器件需要发命令查询状态,READY后才能读到数据。FLASH的是读写,所以操作频率不应该快与它的相应时间,就可以接着读。