- void SPI_Read_Nbytes(u32 addr, u16 len) //显示一帧图片
- {
- while (QSPI_CheckBusy()); //检测忙状态
- QSPI_SetReadMode(); //读模式
- QSPI_SetDataLength(len-1); //设置数据长度
- QSPI_SetAddressSize(2); //设置地址宽度为24位(2+1字节)
- QSPI_SetDummyCycles(8); //设置DUMMY时钟
- QSPI_NoInstruction(); //设置无指令模式(防止误触发)
- QSPI_NoAddress(); //设置无地址模式(防止误触发)
- QSPI_NoAlternate(); //无间隔字节
- QSPI_DataQuadMode(); //设置数据为四线模式
- QSPI_SetInstruction(0x6B); //设置指令
- QSPI_InstructionSingMode(); //设置指令为单线模式
- QSPI_NoAddress(); //设置无地址模式(防止误触发)
- QSPI_SetAddress(addr); //设置地址
- QSPI_AddressSingMode(); //设置地址为单线模式
- //这里Xdata 数据正确
- DMA_P2P_CR1 = 0x87; //P2P_SRC_QSPIRX(0x80) | P2P_DEST_LCMTX(0x07);
- DMA_QSPI_CFG = 0x20; //使能DMA读取操作,不中断
- DMA_QSPI_STA = 0x00; //清除DMA状态
- DMA_QSPI_AMT = (len-1); //设置DMA数据长度
- DMA_QSPI_AMTH = (len-1) >> 8;
- DMA_LCM_CR = 0xa0;
- DMA_QSPI_CR = 0xa1; //启动DMA并触发QSPI读操作
- while(DMA_QSPI_STA==0); //等待DMA 完成
- DMA_QSPI_STA=0;
- //这里Xdata 数据错误
- }
复制代码
主要问题在这个函数里,这个就是 <72.3-QSPI-TFT_DMA_P2P外设到外设_显示视频级动画效果程序> 里的 void QSPI2TFT_Start() |