新手上路
- 积分
- 26
- 金钱
- 26
- 注册时间
- 2022-10-27
- 在线时间
- 4 小时
|
1金钱
抱歉,研究半天没能发出来图片。
uint8_t SPI_FLASH_WriteByte(uint8_t data)
{
u8 i = 0
while(SPI_I2S_GetFlagStatus(SPI_FLASH,SPI_I2S_FLAG_TXE) == RESET)
{
i++;
if(i>200) return 0;
};
SPI_I2S_SendData(SPI_FLASH,data);
i = 0;
while(SPI_I2S_GetFlagStatus(SPI_FLASH,SPI_I2S_FLAG_RXNE) == RESET)
{
i++;
if(i>200) return 0;
};
return SPI_I2S_ReceiveData(SPI_FLASH);
}
uint8_t SPI_Get_JEDEC_ID()
{
u8 rec = 0;
SPI_FLASH_CS_LOW;
SPI_FLASH_WriteByte(0xAB);
SPI_FLASH_WriteByte(DUMMY);
SPI_FLASH_WriteByte(DUMMY);
SPI_FLASH_WriteByte(DUMMY);
return SPI_FLASH_WriteByte(DUMMY);
}
这样用串口打印出来的Device ID和手册一样,是0x17;
现在读取JEDEC ID
uint32_t SPI_Get_JEDEC_ID()
{
u32 rec = 0;
SPI_FLASH_WriteByte(0x9F);
rec = SPI_FLASH_WriteByte(DUMMY);//SPI_FLASH_ReceiveByte();
rec <<= 8;
rec |= SPI_FLASH_WriteByte(DUMMY);//SPI_FLASH_ReceiveByte();
rec <<= 8;
rec |= SPI_FLASH_WriteByte(DUMMY);//SPI_FLASH_ReceiveByte();
SPI_FLASH_CS_HIGH;
return rec;
}
用串口读取的是0x522118,实际手册上应该是0xEF4018,实在费解,希望大佬指点一下,是否是读取方式有问题
|
|