• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

flash读取ID怎么理解?

huihui163 2021-01-03 浏览量:2066
//读取芯片ID W25X40的ID:0XEF12
u16 SPI_Flash_ReadID(void)
{
	u16 Temp = 0;	  
	SPI_FLASH_CS=0;				    
	SPIx_ReadWriteByte(0x90);//发送读取ID命令	    
	SPIx_ReadWriteByte(0x00); 	    
	SPIx_ReadWriteByte(0x00); 	    
	SPIx_ReadWriteByte(0x00); 	 			   
	Temp|=SPIx_ReadWriteByte(0xFF)<<8;  
	Temp|=SPIx_ReadWriteByte(0xFF);	 
	SPI_FLASH_CS=1;				    
	return Temp;

}

中间的读写数据都是00是怎么回事

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以仔细研究一下W25X40的芯片手册,一般地,查阅w25Qxx数据手册可以看到0x90这个指令后面必须跟6个地址位,时序图中标为6个0x00,所以说发0x00这个主要看用的指令有没有相关要求,其实可以理解为发0x00就是0x90指令的一种固定格式
    • 发布于 2021-01-03
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 可以看下是不是spi硬件没有调通,把miso引脚短路到vcc试试看,如果是0xff,说明输入引脚没问题,可能是spi配置问题
    • 发布于2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 这是时序要求的,这种问题需要阅读芯片手册,举一反三理解,才能系统掌握。
    • 发布于2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是安装数据手册的规范数据传输啊,直接按照手册做就好,没有什么必然的原因,可能换一个材料又会变的。
    • 发布于2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是为了给Flash芯片提供SPI上的时候信号,让Flash芯片输出他的ID数据

    从SPI芯片无法自己生成时钟信号,要主机提供的

    • 发布于2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

  • SPI master读数据的时候,要向slave器件提供时钟,这时写一个字节0x00可以产生这个时钟
    • 发布于2021-01-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

flash读取ID怎么理解?