找回密码
 立即注册
查看: 595|回复: 33

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

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-15 23:14:18 | 显示全部楼层 |阅读模式
现象就是  使用QSPI的DMA-P2P将数据读出到LCM就不行。第一次可有读出数据。

lcm_dam (2).zip

749 KB, 下载次数: 6

回复

使用道具 举报 送花

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-17 00:13:11 | 显示全部楼层
我自己发现他死在了  QSPI_CheckBusy() 这个语句 ,QSPI_SR1的值是0x38 ,bti5 查询手册以后发现其应该是在完成后自动清零才对。实际并没有清零,加延时并没有作用

点评

有以下8个函数调用了QSPI_CheckBusy,卡在哪里? QSPI_Inilize QSPI_ReadData_DMA_to_LCM QSPI_READ_INSTR_SDATA QSPI_WRITE_INSTR QSPI_WRITE_INSTR_SADDR8 QSPI_READ_INSTR_SADDR24_DUMMY_QDATA QSPI_WRITE_INSTR_  详情 回复 发表于 2025-5-18 17:41
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 2025-5-18 17:41:57 | 显示全部楼层
爱吃*** 发表于 2025-5-17 00:13
我自己发现他死在了  QSPI_CheckBusy() 这个语句 ,QSPI_SR1的值是0x38 ,bti5 查询手册以后发现其应该是在 ...

有以下8个函数调用了QSPI_CheckBusy,卡在哪里?
QSPI_Inilize
QSPI_ReadData_DMA_to_LCM
QSPI_READ_INSTR_SDATA
QSPI_WRITE_INSTR
QSPI_WRITE_INSTR_SADDR8
QSPI_READ_INSTR_SADDR24_DUMMY_QDATA
QSPI_WRITE_INSTR_SADDR24
QSPI_WRITE_INSTR_SADDR24_QDATA
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 2025-5-18 17:44:34 | 显示全部楼层
爱吃*** 发表于 2025-5-15 23:36
hqspi.Init.ClockPrescaler = 2;  程序里的分频系数是3 改2不是变快了吗,但是改成20 又不行了
...


找不到“hqspi.Init.ClockPrescaler”
截图202505181744147071.jpg
DebugLab
回复 支持 反对

使用道具 举报 送花

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-19 12:54:12 | 显示全部楼层
Debu*** 发表于 2025-5-18 17:41
有以下8个函数调用了QSPI_CheckBusy,卡在哪里?
QSPI_Inilize
QSPI_ReadData_DMA_to_LCM

QSPI_ReadData_DMA_to_LCM  这个函数 调用了第二次就卡住了
回复 支持 反对

使用道具 举报 送花

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-19 13:00:12 | 显示全部楼层
爱吃*** 发表于 2025-5-15 23:36
hqspi.Init.ClockPrescaler = 2;  程序里的分频系数是3 改2不是变快了吗,但是改成20 又不行了
...

这个是ai工具提示的的查找方向,  我自己根据提示修改的是初始化里:  QSPI_InitStructure.ClockDiv   = 3;      //设置QSPI时钟 = 系统时钟/(n+1), 0~255
这个参数还是卡住
回复 支持 反对

使用道具 举报 送花

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-21 00:48:51 | 显示全部楼层
我之前的提问描述有些问题,给人有些模糊,我主要的问题是qspi的DMA-P2P将数据读出到clm里去 ,当我第二次调用QSPI_ReadData_DMA_to_LCM这个函数时我死在了 QSPI_CheckBusy()语句,这个语句其实就是检查了QSPI_SR1的值是,我打印出来的结果是0x38,我不清楚的是程序设置不对还是硬件问题,因为我单独调qpis的dma功能将数据读到xdata区是能够显示正常的图片的,说明硬件连线是没有问题的,P2P和qspi的dma两个都是dma功能使用了P2P功能就只能掉用一次,所以我更偏向软件的P2P设置问题。没弄过这个求大佬解惑。拜托了。 (图片的flash 的数据提前写入的,通过果qspi的dma将数组的数据写入的)
bdb52b12cc6bc66c7ed26dae8c017a7b.png
f7892b38bdccdd29a387d14adb80f185.png
94c91a5d623300e15ec7961752c7382f.png

lcm_dam (3).zip

748.73 KB, 下载次数: 8

373787e4e4b53df7bccd24923c4521ee.mp4

4.19 MB, 下载次数: 7

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-06-27 08:53:15
已绑定手机

40

主题

2078

回帖

7159

积分

论坛元老

积分
7159
发表于 2025-5-22 16:45:00 | 显示全部楼层
你这程序是移植部分例程代码编写的?
建议直接在AI8051U实验箱例程包 QSPI P2P LCM 的例子上修改你需要使用的脚位通道试试。
例程下载地址:https://www.stcai.com/syx
截图202505221642311414.jpg
回复 支持 反对

使用道具 举报 送花

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-22 20:59:41 | 显示全部楼层
我将代码的QSPI P2P LCM dma余数部分注释了就可以了是为什么呀  一定要是整数倍吗,任意的大小不可以吗,如果可以的话要怎么设置

aa.png
回复 支持 反对

使用道具 举报 送花

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

2

主题

7

回帖

85

积分

注册会员

积分
85
发表于 2025-5-26 05:10:27 | 显示全部楼层
爱吃*** 发表于 2025-5-22 20:59
我将代码的QSPI P2P LCM dma余数部分注释了就可以了是为什么呀  一定要是整数倍吗,任意的大小不可以吗,如 ...

在这一段代码注释以后重新使用lcm 的dam将xdata的传入时第一次进入中断前的数据是不对的像是qspi传输的最后一段数据。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-28 18:11 , Processed in 2.951211 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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