胡方方 发表于 2026-2-6 20:31:55

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

我建立一个空工程使用 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
    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读取数据

ercircle 发表于 2026-2-7 16:54:27

未复现,量了下有波形,检查是否频率给太高?


胡方方 发表于 2026-2-8 10:38:20

ercircle 发表于 2026-2-7 16:54
未复现,量了下有波形,检查是否频率给太高?

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

胡方方 发表于 2026-2-8 10:38:52

ercircle 发表于 2026-2-7 16:54
未复现,量了下有波形,检查是否频率给太高?

已经找出问题所在了,非常感谢您
页: [1]
查看完整版本: 关于使用AiCube配置LCM_DMA遇到的问题