zhp 发表于 2025-6-18 15:46:45

会飞的鱼苗 发表于 2025-6-18 10:48
delay_ms(1000);
                LCD_Clear(0xf800);//清屏幕数据红色
                QSPI_ReadDat ...
我之前测试QSPI功能时,
发现使用QSPI的DMA读取FLASH数据后,再使用非DMA方式操作会卡死
最后测试发现是DMA操作完成后,也会将QSPI的中断标志置起来,在没有清标志之前直接QSPI操作会失败

所以使用QSPI的DMA操作完成后,将QSPI的中断标志也同时清一下,再使用非DMA方式操作QSPI就不会卡死

楼主可以尝试一下,执行完成QSPI P2P LCM的DMA后,清一下QSPI的中断标志和LCM中断标志位

神农鼎 发表于 2025-6-18 15:55:03

官方的猫抓老鼠的程序就是QSPI,P2P,彩屏参考程序

===先仿造这个程序来做

会飞的鱼苗 发表于 2025-6-20 16:59:22

zhp 发表于 2025-6-18 15:46
我之前测试QSPI功能时,
发现使用QSPI的DMA读取FLASH数据后,再使用非DMA方式操作会卡死
最后测试发现是DM ...
lcm的中断我没开,启动前也尝试清除过lcm的中断一样的现象。现在如果我改变的qspi的传输长度那么我对应的qspi错误的内容就会相应的改变,例如我将其QSPI_DMA_AMT_LEN 改成1像素就只错误一个像素。如果我改变了数据源的存储区域,将unsigned charxdata IMG_DATA1改成unsigned charcode IMG_DATA1三个函数中只有LCD_BMP(0,20,120,120,&IMG_DATA1);依旧不对。现在没方向了,不晓得下一步该干啥了,郁闷得一

会飞的鱼苗 发表于 2025-6-20 17:12:36

神农鼎 发表于 2025-6-18 15:55
官方的猫抓老鼠的程序就是QSPI,P2P,彩屏参考程序

===先仿造这个程序来做

你说的这个例程我没找到,官方的其他例程我看了不少,他们都没有尝试去在中断里继续qspi dma p2p 传输,一中断就完成了数据传输就完成了,如果你认为哪个程序和其他官方程序不同一样的话你发个连接吧,用法跟我的不太一样,至少官方例程没有尝试在p2p中断里修改qspi的长度过。我是有修改的,为了适应不同大小图片的传输,如果不能适应的话这个例程又这么被灵活的应用尼,一个不定长度的数据来了又这么处理莱,就算你将长度定得很大例如50000,那我只要读个参数你就要全部读出来,不久浪费时间且没有意义吗。

神农鼎 发表于 2025-6-20 18:39:43



深圳国芯人工智能有限公司-实验箱





8051 USB实验箱-32位/8位8051!视频级刷彩屏 TFT320*240@Ai8051U,29.4帧/秒 - DMA支持: QSPI, SPI, I2S, I2C, 4组串口, i8080/MC6800-TFT 国芯技术交流网站 - AI32位8051交流社区

爱吃鱼苗 发表于 2025-6-21 00:18:38

神农鼎 发表于 2025-6-20 18:39
深圳国芯人工智能有限公司-实验箱


官方例程并没有混用的示例呀,
他们都仅仅调用了qspi_tft_dma_p2p 这一种方式,
qspi_tft_dma_p2p我的也和官方例程差不多,
示例没有调用tft的dma传输。
或者硬件的tft传输。
我现在是混用有问题。


C_wolf 发表于 5 天前

中断里,先清除状态,再NEXT试试


模拟仪表盘@AI8051U, QSPI-Flash==>DMA-P2P==>SPI-TFT彩屏 - TFT彩屏,触摸屏,DMA-i8080/M6800并口自动刷屏,DMA-SPI刷屏,外设直接到外设 国芯技术交流网站 - AI32位8051交流社区
页: 1 2 [3]
查看完整版本: QSPI-Flash ==> DMA-P2P ==> TFT彩屏 / i8080-8位并口 只能启动一次