找回密码
 立即注册
楼主: 爱吃鱼苗

QSPI-Flash ==> DMA-P2P ==> TFT彩屏 / i8080-8位并口 只能启动一次

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2025-08-01 09:43:13

28

主题

1161

回帖

4286

积分

超级版主

积分
4286
发表于 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中断标志位
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-08-10 16:34:49

766

主题

1万

回帖

1万

积分

管理员

积分
18640
发表于 2025-6-18 15:55:03 | 显示全部楼层
官方的猫抓老鼠的程序就是QSPI,P2P,彩屏参考程序

===先仿造这个程序来做
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-06-20 16:59:22

4

主题

12

回帖

141

积分

注册会员

积分
141
发表于 2025-6-20 16:59:22 | 显示全部楼层
zh*** 发表于 2025-6-18 15:46
我之前测试QSPI功能时,
发现使用QSPI的DMA读取FLASH数据后,再使用非DMA方式操作会卡死
最后测试发现是DM ...

lcm的中断我没开,启动前也尝试清除过lcm的中断一样的现象。  现在如果我改变的qspi的传输长度那么我对应的qspi错误的内容就会相应的改变,例如我将其QSPI_DMA_AMT_LEN 改成1  像素就只错误一个像素。  如果我改变了数据源的存储区域,将unsigned char  xdata IMG_DATA1[28800]  改成unsigned char  code IMG_DATA1[28800]  三个函数中只有LCD_BMP(0,20,120,120,&IMG_DATA1[0]);依旧不对。现在没方向了,不晓得下一步该干啥了,郁闷得一
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-06-20 16:59:22

4

主题

12

回帖

141

积分

注册会员

积分
141
发表于 2025-6-20 17:12:36 | 显示全部楼层
神*** 发表于 2025-6-18 15:55
官方的猫抓老鼠的程序就是QSPI,P2P,彩屏参考程序

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

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

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-08-10 16:34:49

766

主题

1万

回帖

1万

积分

管理员

积分
18640
发表于 2025-6-20 18:39:43 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-27 00:25:01
已绑定手机

2

主题

7

回帖

87

积分

注册会员

积分
87
发表于 2025-6-21 00:18:38 | 显示全部楼层
神*** 发表于 2025-6-20 18:39
深圳国芯人工智能有限公司-实验箱
官方例程并没有混用的示例呀,
他们都仅仅调用了qspi_tft_dma_p2p 这一种方式,
qspi_tft_dma_p2p我的也和官方例程差不多,
示例没有调用tft的dma传输。
或者硬件的tft传输。
我现在是混用有问题。


点评

你可以搜,模拟仪表盘,那个有整个的参考程序,我也是混用的  发表于 2025-6-24 09:42
回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:291
  • 最近打卡:2025-08-10 02:29:24
已绑定手机

13

主题

178

回帖

1767

积分

金牌会员

积分
1767
发表于 2025-6-24 09:39:06 | 显示全部楼层
回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-08-07 09:45:44
已绑定手机

15

主题

59

回帖

459

积分

中级会员

积分
459
发表于 2025-7-28 13:43:39 | 显示全部楼层
C_w*** 发表于 2025-6-24 09:39
中断里,先清除状态,再NEXT试试


大佬,我这由三个问题,希望解惑:
1.从这张图中可以看出DMA control unit 直接控制了LCM、I2C、I2S、ADC和UART、QSPI,而Peripheral Interface Unit没有连线,那么可以认为DMA不可以直接控制P0到P5这个GPIO的引脚吗?
2.因为我现在遇到一个问题:原来用模拟I8080驱动点阵液晶屏,后来想通过DMA单独模拟I8080传输,最后发现貌似,DMA应该不能使用P0到P5口对吧?
3.如果非要用DMA控制I8080,则需要使用LCM_DMA,就没有其他别的方法了,是吗?
截图202507281336578111.jpg


点评

1、DMA不能直接读写IO,必须使用DMA支持的模块才行。 2、DMA操作8080总线的LCD屏(包括彩色和黑白LCD),一定要通过“TFT彩屏DMA”来实现。 3、同上面2点说明。 您也可以通过SPI DMA操作SPI接口的屏。  详情 回复 发表于 2025-7-28 14:20
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:147
  • 最近打卡:2025-08-11 00:11:03

76

主题

6607

回帖

1万

积分

超级版主

积分
13757
发表于 2025-7-28 14:20:27 | 显示全部楼层
孙*** 发表于 2025-7-28 13:43
大佬,我这由三个问题,希望解惑:
1.从这张图中可以看出DMA control unit 直接控制了LCM、I2C、I2S、AD ...

1、DMA不能直接读写IO,必须使用DMA支持的模块才行。
2、DMA操作8080总线的LCD屏(包括彩色和黑白LCD),一定要通过“TFT彩屏DMA”来实现。
3、同上面2点说明。

您也可以通过SPI DMA操作SPI接口的屏。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-08-07 09:45:44
已绑定手机

15

主题

59

回帖

459

积分

中级会员

积分
459
发表于 2025-7-28 14:24:46 | 显示全部楼层
梁*** 发表于 2025-7-28 14:20
1、DMA不能直接读写IO,必须使用DMA支持的模块才行。
2、DMA操作8080总线的LCD屏(包括彩色和黑白LCD), ...

谢谢 解惑
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-11 04:20 , Processed in 0.120967 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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