找回密码
 立即注册
查看: 358|回复: 2

UART-SPI-LCM_DMA_交替使用下载显示图片例程将LCD8位改为16位后不能正常显示

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-20 10:41:53

6

主题

33

回帖

288

积分

中级会员

积分
288
发表于 2024-11-30 08:51:32 | 显示全部楼层 |阅读模式
本帖最后由 大雨 于 2024-11-30 09:08 编辑

UART-SPI-LCM_DMA_交替使用下载显示图片的问题

根据LCM_Test_8080_DMA_8bit_ILI9341例程,将原8位lcd屏,改为16位,修改了两处设置,测试显示正常。但是同样修改设置测试“UART-SPI-LCM_DMA_交替使用下载显示图片”例程时,显示则不正常。

重写函数:void LCD_WR_REG(u16 Reg)         
{
    LCMIFDATH = Reg>>8;//(u8)(Reg>>8);
   LCMIFDATL = Reg&0xFF;//(u8)Reg;  //LCMIFDATH
        LCD_CS=0;
        LCMIFCR = 0x84;                //Enable interface, write command out
        while(LcmFlag);
        LCD_CS = 1 ;
}

修改设置:void LCM_Config(void)
{
        //LCMIFCFG = 0x84;        //bit7 1:Enable Interrupt, bit1 0:8bit mode; bit0 0:8080,1:6800
        LCMIFCFG = 0x8E;   //16位 开中断
        LCMIFCFG2 = 0x09;        //RS:P45,RD:P44,WR:P42; Setup Time=2,HOLD Time=1
        LCMIFSTA = 0x00;
}
显示图片不正常

不能正常显示图片

不能正常显示图片
1.jpg

下载图片过程

下载图片过程

下载图片过程

下载图片过程

显示图片串口助手提示

显示图片串口助手提示

图片取模设置

图片取模设置
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-11-30 16:42:57 | 显示全部楼层
这个没法实验呀,不过应该不止要修改这两处的,屏初始化那段很长的代码,可能也要改。
得自己努力去找不同, 多看屏规格书,
另外找屏厂家要16位的驱动源码,然后看看哪些地方不一样,这样找起来应该会快一点。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-20 10:41:53

6

主题

33

回帖

288

积分

中级会员

积分
288
发表于 2024-12-2 09:07:16 | 显示全部楼层
tzz1*** 发表于 2024-11-30 16:42
这个没法实验呀,不过应该不止要修改这两处的,屏初始化那段很长的代码,可能也要改。
得自己努力去找不同 ...

初始化已经改过了
void LCD_Init(void)
{
  LCD_Set_GPIO();
  LCDRST(); //初始化之前复位
//#if (USE_LCM==1)    //void LCM_Config(void)
//  LCMIFCFG = 0x84;  //bit7 1:Enable Interrupt, bit1 0:8bit mode; bit0 0:8080,1:6800
//  LCMIFCFG2= 0x09;  //RS:P45,RD:P44,WR:P42; Setup Time=2,HOLD Time=1
//  LCMIFSTA = 0x00;
//  EA = 1;  //开中断
//#endif
//#if (USE_DMA==1)    //void DMA_Config(void)
//  DMA_Config();
//#endif
       
        //*************3.2inch ILI9341初始化**********//
        LCD_WR_CMD(0xE0);
        LCD_WR_DAT(0x00);
        LCD_WR_DAT(0x07);
        LCD_WR_DAT(0x0f);
        LCD_WR_DAT(0x0D);
        LCD_WR_DAT(0x1B);
        LCD_WR_DAT(0x0A);
        LCD_WR_DAT(0x3c);
        LCD_WR_DAT(0x78);
        LCD_WR_DAT(0x4A);
        LCD_WR_DAT(0x07);
        LCD_WR_DAT(0x0E);
        LCD_WR_DAT(0x09);
        LCD_WR_DAT(0x1B);
        LCD_WR_DAT(0x1e);
        LCD_WR_DAT(0x0f);  
       
        LCD_WR_CMD(0xE1);
        LCD_WR_DAT(0x00);
        LCD_WR_DAT(0x22);
        LCD_WR_DAT(0x24);
        LCD_WR_DAT(0x06);
        LCD_WR_DAT(0x12);
        LCD_WR_DAT(0x07);
        LCD_WR_DAT(0x36);
        LCD_WR_DAT(0x47);
        LCD_WR_DAT(0x47);
        LCD_WR_DAT(0x06);
        LCD_WR_DAT(0x0a);
        LCD_WR_DAT(0x07);
        LCD_WR_DAT(0x30);
        LCD_WR_DAT(0x37);
        LCD_WR_DAT(0x0f);
       
        LCD_WR_CMD(0xC0);
        LCD_WR_DAT(0x10);
        LCD_WR_DAT(0x10);
       
        LCD_WR_CMD(0xC1);
        LCD_WR_DAT(0x41);
       
        LCD_WR_CMD(0xC5);
        LCD_WR_DAT(0x00);
        LCD_WR_DAT(0x22);
        LCD_WR_DAT(0x80);
       

       
        LCD_WR_CMD(0x3A); //Interface Mode Control,
        LCD_WR_DAT(0x55);
               
        LCD_WR_CMD(0XB0);  //Interface Mode Control  
        LCD_WR_DAT(0x00);
        LCD_WR_CMD(0xB1);   //Frame rate 70HZ  
        LCD_WR_DAT(0xB0);
        LCD_WR_DAT(0x11);
        LCD_WR_CMD(0xB4);
        LCD_WR_DAT(0x02);   
        LCD_WR_CMD(0xB6); //RGB/MCU Interface Control
        LCD_WR_DAT(0x02);
        LCD_WR_DAT(0x02);
       
        LCD_WR_CMD(0xB7);
        LCD_WR_DAT(0xC6);
        LCD_WR_CMD(0xE9);
        LCD_WR_DAT(0x00);
       
        LCD_WR_CMD(0XF7);   
        LCD_WR_DAT(0xA9);
        LCD_WR_DAT(0x51);
        LCD_WR_DAT(0x2C);
        LCD_WR_DAT(0x82);
       
        LCD_WR_CMD(0x11);
        delay_ms(120);
        LCD_WR_CMD(0x29);

//************* Start Initial Sequence **********//               
        //设置LCD属性参数
        //LCD_SetParam();//设置LCD参数         
        LCD_BL=1;//点亮背光                  
  //*************2.4inch ILI9341初始化**********//  
//  LCD_WR_CMD(0x28); //display off 关显示
//  delayms(20);
//  LCD_WR_CMD(0xCF); LCD_WR_DAT(0x00); LCD_WR_DAT(0xD9); LCD_WR_DAT(0x30); //0xD9/0xC1
//  LCD_WR_CMD(0xED); LCD_WR_DAT(0x64); LCD_WR_DAT(0x03); LCD_WR_DAT(0x12); LCD_WR_DAT(0x81);
//  LCD_WR_CMD(0xE8); LCD_WR_DAT(0x85); LCD_WR_DAT(0x10); LCD_WR_DAT(0x7A);
//  LCD_WR_CMD(0xCB); LCD_WR_DAT(0x39); LCD_WR_DAT(0x2C); LCD_WR_DAT(0x00); LCD_WR_DAT(0x34); LCD_WR_DAT(0x02);
//  LCD_WR_CMD(0xF7); LCD_WR_DAT(0x20);
//  LCD_WR_CMD(0xEA); LCD_WR_DAT(0x00); LCD_WR_DAT(0x00);
//  LCD_WR_CMD(0xC0); LCD_WR_DAT(0x1B); //Power control //VRH[5:0]
//  LCD_WR_CMD(0xC1); LCD_WR_DAT(0x12); //Power control //SAP[2:0];BT[3:0] 0x01
//  LCD_WR_CMD(0xC5); LCD_WR_DAT(0x08); LCD_WR_DAT(0x26);//VCM control //30 //30
//  LCD_WR_CMD(0xC7); LCD_WR_DAT(0XB7); //VCM control2
//  LCD_WR_CMD(0x36); LCD_WR_DAT(0x08); //Memory Access Control
//  LCD_WR_CMD(0x3A); LCD_WR_DAT(0x55);
//  LCD_WR_CMD(0xB1); LCD_WR_DAT(0x00); LCD_WR_DAT(0x1A);
//  LCD_WR_CMD(0xB6); LCD_WR_DAT(0x0A); LCD_WR_DAT(0xA2); // Display Function Control
//  LCD_WR_CMD(0xF2); LCD_WR_DAT(0x00); //3Gamma Function Disable
//  LCD_WR_CMD(0x26); LCD_WR_DAT(0x01); //Gamma curve selected
//  LCD_WR_CMD(0xE0); LCD_WR_DAT(0x0F); LCD_WR_DAT(0x1D); LCD_WR_DAT(0x1A); LCD_WR_DAT(0x0A);  //Set Gamma
//                    LCD_WR_DAT(0x0D); LCD_WR_DAT(0x07); LCD_WR_DAT(0x49); LCD_WR_DAT(0X66);
//                    LCD_WR_DAT(0x3B); LCD_WR_DAT(0x07); LCD_WR_DAT(0x11); LCD_WR_DAT(0x01);
//                    LCD_WR_DAT(0x09); LCD_WR_DAT(0x05); LCD_WR_DAT(0x04);      
//  LCD_WR_CMD(0xE1); LCD_WR_DAT(0x00); LCD_WR_DAT(0x18); LCD_WR_DAT(0x1D); LCD_WR_DAT(0x02); //Set Gamma
//                    LCD_WR_DAT(0x0F); LCD_WR_DAT(0x04); LCD_WR_DAT(0x36); LCD_WR_DAT(0x13);
//                    LCD_WR_DAT(0x4C); LCD_WR_DAT(0x07); LCD_WR_DAT(0x13); LCD_WR_DAT(0x0F);
//                    LCD_WR_DAT(0x2E); LCD_WR_DAT(0x2F); LCD_WR_DAT(0x05);
//  LCD_WR_CMD(0x2A); LCD_WR_DAT(0x00); LCD_WR_DAT(0x00); LCD_WR_DAT(0x00); LCD_WR_DAT(0xEF); //宽度  
//  LCD_WR_CMD(0x2B); LCD_WR_DAT(0x00); LCD_WR_DAT(0x00); LCD_WR_DAT(0x01); LCD_WR_DAT(0x3F); //高度
//  LCD_WR_CMD(0x11);    //Exit Sleep 退出睡眠
//  delayms(120);
//  LCD_WR_CMD(0x29);    //display on 开显示
  //设置LCD属性参数
  LCD_SetDIR(LCD_DIR); //设置LCD显示方向 (设置窗口,包含宽高度)
  //LCD_BL=1;          //点亮背光   
}
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:36 , Processed in 0.298191 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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