QSPI如何直接进入数据阶段
改了一下例程,发现没波形void QSPI_READ_QINSTR_QDATA(BYTE cmd, BYTE *pdat, WORD datalen)
{
while (QSPI_CheckBusy()); //检测忙状态
QSPI_SetReadMode(); //读模式
QSPI_SetDataLength(datalen-1);//设置数据长度
QSPI_SetDummyCycles(0); //设置DUMMY时钟
// QSPI_InstructionQuadMode(); //设置指令为四线模式
QSPI_NoInstruction(); //无指令
QSPI_NoAddress(); //无地址字节
QSPI_NoAlternate(); //无间隔字节
QSPI_DataQuadMode(); //设置数据为四线模式
QSPI_SetInstruction(cmd); //设置指令
while (!QSPI_CheckTransfer());//等到数据传输完成
QSPI_ClearTransfer(); //清除传输完成标志
while (datalen)
{
*pdat = QSPI_ReadData(); //从FIFO中读取数据
pdat++;
datalen--;
}
while (QSPI_CheckFIFOLevel()) //清空FIFO
QSPI_ReadData();
}
void QSPI_WRITE_INSTR_SADDR32_QDATA(BYTE cmd, DWORD addr, BYTE *pdat, WORD datalen)
{
while (QSPI_CheckBusy()); //检测忙状态
QSPI_SetWriteMode(); //写模式
QSPI_SetDataLength(datalen-1);//设置数据长度
// QSPI_SetAddressSize(3); //设置地址宽度为32位(3+1字节)
QSPI_SetDummyCycles(0); //设置DUMMY时钟
// QSPI_InstructionSingMode(); //设置指令为单线模式
// QSPI_AddressSingMode(); //设置地址为单线模式
QSPI_NoInstruction(); //无指令
QSPI_NoAddress(); //无地址
QSPI_NoAlternate(); //无间隔字节
QSPI_DataQuadMode(); //设置数据为四线模式
QSPI_SetInstruction(cmd); //设置指令
QSPI_SetAddress(addr); //设置地址
while (datalen)
{
QSPI_WriteData(*pdat); //写数据到FIFO中
pdat++;
datalen--;
}
while (!QSPI_CheckTransfer());//等到数据传输完成
QSPI_ClearTransfer(); //清除传输完成标志
}
SPI / QSPI 编程外部串行Flash | 配合ISP软件中 工具 | 串行Flash编程器 软件 - QSPI/3组SPI/I2S/I2C,一线制温湿度传感器 国芯技术交流网站 - AI32位8051交流社区
页:
[1]