新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2016-6-14
- 在线时间
- 1 小时
|
5金钱
SPI读W25X16 FLASH,发送模式选的8bit,速率为9M,示波器观察的是SPI的SCLK引脚,8个SCLK时钟周期过了,怎么还有大约1US间断的时间啊??求助大家!!!!代码如下:void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)
{
u16 i;
SPI_FLASH_CS=0; //ê1ÄüÆ÷¼t
SPI1_ReadWriteByte(W25X_ReadData); //·¢Ëí¶áè¡Ãüáî
SPI1_ReadWriteByte((u8)((ReadAddr)>>16)); //·¢Ëí24bitμØÖ·
SPI1_ReadWriteByte((u8)((ReadAddr)>>8));
SPI1_ReadWriteByte((u8)ReadAddr);
for(i=0;i<NumByteToRead;i++)
{
pBuffer=SPI1_ReadWriteByte(0XFF); //Ñ-»·¶áêy
}
SPI_FLASH_CS=1; //è¡ÏûƬѡ
}
u8 SPI1_ReadWriteByte(u8 TxData)
{
u16 retry=0;
while((SPI1->SR&1<<1)==0)//μè′y·¢ËíÇø¿Õ
{
retry++;
if(retry>0XFFFE)return 0;
}
SPI1->DR=TxData; //·¢Ëíò»¸öbyte
retry=0;
while((SPI1->SR&1<<0)==0) //μè′y½óêÕíêò»¸öbyte
{
retry++;
if(retry>0XFFFE)return 0;
}
return SPI1->DR; //·μ»ØêÕμ½μÄêy¾Y
}
怎么解决啊?是不是要改成DMA的方式?
|
|