找回密码
 立即注册
查看: 75|回复: 0

AI8051U34K64 QFN48的QSPI中怎么防止FIFO溢出?

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2026-03-09 22:26:23
已绑定手机

9

主题

12

回帖

103

积分

注册会员

积分
103
发表于 2026-1-28 08:51:45 | 显示全部楼层 |阅读模式
现在学习QSPI的用法,发现FTF标志达到阀值后置1, QSPI传送仍然在继续. 这样导致FIFO中的数来不及保存,而出错.不知道大家怎么解决?

例程中的方法是接收完,再读取,但字节数超过32字节就不行.应该是缓存满了. 参考的下面函数.


void QSPI_READ_INSTR_SDATA(BYTE cmd, BYTE *pdat, WORD datalen)
{
    while (QSPI_CheckBusy());       //检测忙状态

    QSPI_SetReadMode();             //读模式
    QSPI_SetDataLength(datalen-1);  //设置数据长度
    QSPI_SetDummyCycles(0);         //设置DUMMY时钟
    QSPI_InstructionSingMode();     //设置指令为单线模式
    QSPI_NoAddress();               //无地址字节
          QSPI_NoAlternate();             //无间隔字节
    QSPI_DataSingMode();            //设置数据为单线模式
    QSPI_SetInstruction(cmd);       //设置指令

    while (!QSPI_CheckTransfer());  //等到数据传输完成
    QSPI_ClearTransfer();           //清除传输完成标志

    while (datalen)
    {
        *pdat = QSPI_ReadData();    //从FIFO中读取数据
        pdat++;
        datalen--;
    }
   
    while (QSPI_CheckFIFOLevel())   //清空FIFO
        QSPI_ReadData();
}

回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-23 19:48 , Processed in 0.096024 second(s), 42 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表