找回密码
 立即注册
查看: 85|回复: 3

关于使用AiCube配置LCM_DMA遇到的问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2026-02-08 10:38:20
已绑定手机

5

主题

13

回帖

65

积分

注册会员

积分
65
发表于 2026-2-6 20:31:55 | 显示全部楼层 |阅读模式
我建立一个空工程使用 Aicube 配置 Stc32g144k246 芯片使用 LCM 为读取模式,使用 DMA_LCM_TriggerResdData ()函数触发 LCM_DMA 读取数据,按理说 RD(p3.7)会按一定频率自动拉低才是。我用逻辑分析仪看 p3.7 引脚 没波形,一直都是高电平 ,并且DMA 中断也没触发。难道触发DMA_LCM读取数据需要其他条件?

这是我的主循环代码:    while (1)
    {
        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        // 在此添加主函数中用户主循环代码

                                delay_ms(2000);
                                DMA_LCM_TriggerReadData();//触发LCM DMA读取数据(这是Aicube生成的函数)
        //<<AICUBE_USER_MAIN_LOOP_END>>
    }


这是Aicube给出的LCM初始化函数:

void LCM_Init(void)
{
    LCM_DATA8BSwitchP2();               //选择LCM数据口: P2[7:0]
    LCM_RSSwitchP45();                  //选择LCM的RS端口: RS (P4.5)
    LCM_CTRLSwitchP3736();              //选择LCM的R/W控制端口: RD (P3.7), WR (P3.6)

    LCM_SetMode_i8080();                //设置LCM为i8080模式
    LCM_SetBitWidth_8B();               //设置LCM为8位数据模式
    LCM_SetClockDivider(4);             //设置LCM时钟分频
    LCM_SetSetupTime(0);                //设置LCM数据建立时间
    LCM_SetHoldTime(0);                 //设置LCM数据保持时间

    LCM_Enable();                       //使能LCM功能

    DMA_LCM_SetAmount(15999);           //设置LCM DMA发送/接收字节数
    DMA_LCM_SetRxAddress(pu8LCMDMARxBuffer); //设置LCM DMA接收缓冲区地址
    DMA_LCM_SetInterval(0);             //设置LCM DMA发送/接收字节间隔时间(系统时钟)
    DMA_LCM_ClearFlag();                //清除LCM DMA中断标志
    DMA_LCM_SetBusPriority(0);          //设置总线访问为最低优先级
    DMA_LCM_SetIntPriority(0);          //设置中断为最低优先级
    DMA_LCM_EnableInt();                //使能LCM DMA中断
    DMA_LCM_Enable();                   //使能LCM DMA功能
//  DMA_LCM_TriggerReadData();          //触发LCM DMA读取数据

微信图片_20260206184152_1020_2168.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:481
  • 最近打卡:2026-03-21 18:48:59
已绑定手机

104

主题

4193

回帖

9269

积分

荣誉版主

无情的代码机器

积分
9269
发表于 2026-2-7 16:54:27 | 显示全部楼层
未复现,量了下有波形,检查是否频率给太高?
lcmTest.zip (963.9 KB, 下载次数: 1)
截图202602071653282146.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2026-02-08 10:38:20
已绑定手机

5

主题

13

回帖

65

积分

注册会员

积分
65
发表于 2026-2-8 10:38:20 | 显示全部楼层
erci*** 发表于 2026-2-7 16:54
未复现,量了下有波形,检查是否频率给太高?

非常感谢,我发现如果要主动读的话要一起使用这两个函数才行,                                 
                                LCM_TrigReadData();           // 设置LCM控制器为读取数据模式
                                DMA_LCM_TriggerReadData();//触发LCM DMA读取操作
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2026-02-08 10:38:20
已绑定手机

5

主题

13

回帖

65

积分

注册会员

积分
65
发表于 2026-2-8 10:38:52 | 显示全部楼层
erci*** 发表于 2026-2-7 16:54
未复现,量了下有波形,检查是否频率给太高?

已经找出问题所在了,非常感谢您
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-22 03:28 , Processed in 0.109700 second(s), 59 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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