找回密码
 立即注册
查看: 215|回复: 28

请教一下,用AiCube图形化程序自动生成SPI驱动TFT彩屏,无输出?

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-22 14:23:15 | 显示全部楼层 |阅读模式
用AICube 自动生成框架,驱动TFTILI_St7789,设置如下:

单片机是屠龙刀32G12K128,P2口全部设推挽输出(准双向也试过),程序生成+编译下载,一切顺利

就是没显示,而我用软件模拟(P2设准双向口)是正常工作的,但是P2设推挽输出,是黑屏不能正常工作的。

AiCube生成的系统,我用逻辑分析仪捕捉不到信号,感觉没有启振,MCU不工作的感觉。。。






截图202605221417478807.jpg
截图202605221422539985.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-22 14:25:11 | 显示全部楼层
检查时钟设置:

P2口模式设置:

没发现哪里不对啊?请大侠指点一下!

仔细观察,屏幕是有一点反应的,我在主循环添加:


while (1)
    {
        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        // 在此添加主函数中用户主循环代码
                P4=~P4;
                delay_ms(2000);
               
        LCD_Fill_Color(0x001F);
   
    // 2. 显示第一张图片 (假设图片大小 120x120,放在左上角 0,0)
    // 注意:你需要确保 gImage_image1 数据存在
     LCD_Show_Image(0, 0, 120, 120, picture_1);

    delay_ms(2000);
        // 3. 显示第二张图片 (假设图片大小 120x120,放在右下角 120,120)
     LCD_Show_Image(120, 120, 120, 120, picture_2);

        //<<AICUBE_USER_MAIN_LOOP_END>>
    }

P4口的LED是正常工作的,屏幕也能看出有点刷屏的动作,不过好像点不亮..............



截图202605221424003223.jpg
截图202605221424402035.jpg

项目.zip

611.99 KB, 下载次数: 1

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-22 15:53:25 | 显示全部楼层
能捕捉到图形:

所以看到屏幕有点变动,但还是点不亮
截图202605221552432127.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 08:54:48 | 显示全部楼层
我觉得还是先看一下相关知识,今天先看看何宾老师的DMA视频:
截图202605250854462183.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 08:58:16 | 显示全部楼层
直接存储器访问(Direct Memory Access,DMA)是计算机系统具有的一个重要特性
在STC32G系列单片机中提供了DMA的功能,使得单片机系统的吞吐量显著提高,进一步提高了单片机系统并行工作的能力

截图202605250858143376.jpg
截图202605250859396878.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 09:02:18 | 显示全部楼层
DMA的基本概念
STC32G系列单片机DMA
设计实例:存储器到存储器的DMA实现
DMA是计算机系统具备的一个重要特性,允许某些硬件系统在没有中央处理单元(Central Processing Unit,CPU)的干预下访问主系统存储器XDATA
截图202605250900436275.jpg
截图202605250902157901.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 09:06:52 | 显示全部楼层
典型的,当CPU要想往通用异步串行收发器的发送数据缓冲区写数据可通过下面两种方法:通过不断访问串口控制寄存器的SCON的TI/SCON.1位,来确定发送缓冲区是否为“空”
一旦发现TI/SCON.1位为“1”,则表示发送缓冲区为空,这时候CPU就可以将要发送的数据写到串口的发送数据缓冲区中,这就是通常所说的
“轮询”方式
轮询方式是CPU和外设进行交互的最简单方式,但是这种方式的效率最低。由于CPU不断地轮询外设的寄存器,使得无法释放CPU资源来处理其他任务,其他任务得不到CPU的及时响应和处理
通过中断服务程序/中断句柄进行处理
当在主程序中使能发送缓冲区为空时产生中断请求,并且使能CPU响应该中断请求时,一旦发送缓冲区为空,程序就跳到中断服务程序/中断句柄中,在中断服务程序/中断句柄中,将要发送的数据写到发送缓冲区中。中断是CPU和外设进行交互的另一种方式,这种方式的效率比轮询要高。这是因为,只有当发送缓冲区为空的时候,才需要CPU通过访问中断服务程序/中断句柄来发送数据。当没有中断产生时,也就是发送数据缓冲区不为空时,CPU可以通过运行主程序来处理其他任务但是,采用中断的方式执行CPU和外设的交互,也会有一定的问题。这是因为,如果有多个中断需要处理的时候,CPU就会被频繁的打断,使得CPU的运行效率降低。这是因为,当打断CPU的时候,需要执行保存现场的操作
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 09:13:23 | 显示全部楼层
综上所述,不管采用轮询方式还是中断方式来执行CPU和外设之间的交互,都需要CPU的"干预”
只要有CPU的“干预”,就会降低整个系统的性能那问题是,能不能想办法不让CPU进行干预呢?这就是DMA的“功劳”,DMA的引入,使得在没有CPU的干预下,实现储存器和外设之间的直接数据传输
采用DMA的方式执行外设的交互是效率最高的比如,预先将要发送的数据保存到数据存储器中,当需要将这些数据发送到串口时,在DMA的控制下,将数据存储器中保存的数据直接写到串口的发送数据缓冲区中
在这个过程中,没有CPU的参与/干预,CPU可以专心的处理其他任务,就好像CPU并不知道在这期间已经实现了将数据存储器中的数据写到串口数据发送缓冲区
这样,CPU处理其他任务和数据从存储器写到串口发送数据缓冲区这两个
“任务”是在相同的时间间隔内发生的通过这个例子可知,CPU与存储器和外设数据传输是并行执行的进一步提高了整个系统的吞吐量
截图202605250913211779.jpg
截图202605250916594101.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 09:21:56 | 显示全部楼层
从STC32G12K128开始,是个新的时代:DMA!DMA实际也是主设备!

通常,将用于实现DMA的控制单元称为DMA控制器 (DMA Controller,DMAC)

在一个存在DMAC的计算机系统中,实际上是有两个主设备,一个是CPU,另一个是DMA下面通过STC32G系列单片机来具体说明DMA的实现方式

截图202605250921254068.jpg
截图202605250921536704.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2026-07-04 17:28:31
已绑定手机

25

主题

2662

回帖

3411

积分

论坛元老

积分
3411
发表于 2026-5-25 09:29:43 | 显示全部楼层
注意:DMA的信号线,1是和32位数据总线相连,2是和24位地址总线相连接!

并且同时接线到外设Uart   IIc  SPI  LCM  接口上! 同时内部扩展DATA区域 8KB的XDATA 也直接和DMA相连!

请再一次看看狂图:

截图202605250929401461.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-5 14:04 , Processed in 0.077055 second(s), 78 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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