//读取芯片ID
//返回值如下:
//0XEF13,表示芯片型号为W25Q80
//0XEF14,表示芯片型号为W25Q16
//0XEF15,表示芯片型号为W25Q32
//0XEF16,表示芯片型号为W25Q64
u16 SPI_Flash_ReadID(void)
{
u16 Temp = 0;
SPI_FLASH_CS=0;
SPI2_ReadWriteByte(0x90);//发送读取ID命令
SPI2_ReadWriteByte(0x00);
SPI2_ReadWriteByte(0x00);
SPI2_ReadWriteByte(0x00);
Temp|=SPI2_ReadWriteByte(0xFF)<<8;
Temp|=SPI2_ReadWriteByte(0xFF);
SPI_FLASH_CS=1;
return Temp;
}
读ID这段代码中
问题1:发送0x90是读取id命令,这个我明白,但是SPI2_ReadWriteByte(0x00); 这句重复三次是什么作用,指令表里没有0x00
问题2;Temp|=SPI2_ReadWriteByte(0xFF)<<8;
Temp|=SPI2_ReadWriteByte(0xFF); 这两句代码什么意思,,什么作用?
问题3;开始时SPI_FLASH_CS=0;是把FLASH设置成从设备吧? 但结尾SPI_FLASH_CS=1;又拉高变为主设备???没太懂
|