用STC32G144K246的63例程 | 已解决,取模软件,新旧风格
用STC32G144K246的63例程【63-QSPI-TFT_DMA_P2P外设到外设_显示视频级动画效果程序-ILI9341】
把屏改成V7789, 8位数据P2后黑屏(背光是亮的),
不知问题出在那?
请大家指点
{:baoquan:}
void LCM_Init()
{
P2BP &= ~0xff; //使能LCM的D0~D8数据脚硬件自动设置端口模式
P4M0 |= 0x34; //RS,WR,RD设置成推挽输出
P4M1 &= ~0x34;
P5M0 |= 0x02; //RST设置成推挽输出
P5M1 &= ~0x02;
P4M0 |= 0x08; //CS设置成推挽输出
P4M1 &= ~0x08;
LCMIFCR = 0x80|CRMODE;
LCMIFCFG = 0x00; //8位模式
LCMIFCFG2 = 0x00; //
LCMIFSTA = 0x00;
}
void LCM_WriteCmd_CS(WORD cmd)
{
LCMIFDATL = cmd;
LCM_CS_L();
LCMIFCR = 0x84|CRMODE;
while (!(LCMIFSTA & 0x01));
LCMIFSTA = 0x00;
LCM_CS_H();
}
void LCM_WriteData_CS(WORD dat)
{
LCMIFDATL = dat;
LCM_CS_L();
LCMIFCR = 0x85|CRMODE;
while (!(LCMIFSTA & 0x01));
LCMIFSTA = 0x00;
LCM_CS_H();
}
void TFT_Init()
{
LCM_CS_H();
delay_ms(50);
LCM_RST = 0;
delay_ms(150);
LCM_RST = 1;
delay_ms(50);
LCM_WriteCmd_CS(0x11);
delay_ms(50);
LCM_WriteCmd_CS(0x36);
LCM_WriteData_CS(0x60);//FPC朝左(0xa0),FPC朝右(0x60)FPC朝上(0xc0)FPC朝下(0x48)
LCM_WriteCmd_CS(0x3A);
LCM_WriteData_CS(0x05);
LCM_WriteCmd_CS(0xB2);
LCM_WriteData_CS(0x0C);
LCM_WriteData_CS(0x0C);
LCM_WriteData_CS(0x00);
LCM_WriteData_CS(0x33);
LCM_WriteData_CS(0x33);
LCM_WriteCmd_CS(0xB7);
LCM_WriteData_CS(0x76);
LCM_WriteCmd_CS(0xBB);
LCM_WriteData_CS(0x26);
LCM_WriteCmd_CS(0xC0);
LCM_WriteData_CS(0x2C);
LCM_WriteCmd_CS(0xC2);
LCM_WriteData_CS(0x01);
LCM_WriteCmd_CS(0xC3);
LCM_WriteData_CS(0x1F);
LCM_WriteCmd_CS(0xC4);
LCM_WriteData_CS(0x20);
LCM_WriteCmd_CS(0xC6);
LCM_WriteData_CS(0x0F);
LCM_WriteCmd_CS(0xD0);
LCM_WriteData_CS(0xA7);
LCM_WriteData_CS(0xA1);
LCM_WriteCmd_CS(0xD0);
LCM_WriteData_CS(0xA4);
LCM_WriteData_CS(0xA1);
LCM_WriteCmd_CS(0xD6);
LCM_WriteData_CS(0xA1);
LCM_WriteCmd_CS(0xE0);
LCM_WriteData_CS(0xF0);
LCM_WriteData_CS(0x00);
LCM_WriteData_CS(0x06);
LCM_WriteData_CS(0x02);
LCM_WriteData_CS(0x04);
LCM_WriteData_CS(0x13);
LCM_WriteData_CS(0x30);
LCM_WriteData_CS(0x44);
LCM_WriteData_CS(0x46);
LCM_WriteData_CS(0x39);
LCM_WriteData_CS(0x14);
LCM_WriteData_CS(0x14);
LCM_WriteData_CS(0x2D);
LCM_WriteData_CS(0x36);
LCM_WriteCmd_CS(0xE1);
LCM_WriteData_CS(0xF0);
LCM_WriteData_CS(0x0A);
LCM_WriteData_CS(0x0E);
LCM_WriteData_CS(0x0E);
LCM_WriteData_CS(0x0B);
LCM_WriteData_CS(0x05);
LCM_WriteData_CS(0x2F);
LCM_WriteData_CS(0x43);
LCM_WriteData_CS(0x46);
LCM_WriteData_CS(0x36);
LCM_WriteData_CS(0x12);
LCM_WriteData_CS(0x12);
LCM_WriteData_CS(0x2A);
LCM_WriteData_CS(0x32);
LCM_WriteCmd_CS(0x21);
delay_ms(200);
LCM_WriteCmd_CS(0x29);
LCM_WriteCmd_CS(0x2C);
}//这个v7789我在32G12K128上通过
void TFT_ShowStart()
{
LCM_WriteCmd_CS(0x2A);
LCM_WriteData_CS(0);
LCM_WriteData_CS(0);
LCM_WriteData_CS((BYTE)(TFT_W>>8));
LCM_WriteData_CS(0x00FF&TFT_W);
LCM_WriteCmd_CS(0x2B);
LCM_WriteData_CS(0);
LCM_WriteData_CS(0);
LCM_WriteData_CS((BYTE)(TFT_H>>8));
LCM_WriteData_CS(0x00FF&TFT_H);
LCM_WriteCmd_CS(0x2C);
LCM_CS_L();
}//这个改成v7789后不知是否要改
通常背光由单个引脚控制移植没问题
可尝试调整通信速率 可能得比较TFT控制器的数据格式
另外单片机的外设也可能配置上有区别 我是新手不知这搞{:zhemo:} 1.向屏幕厂要点屏例程,对比初始化序列
2.检查接线
3.逻辑分析仪抓屏幕侧波形,对比初始化数据
请教大家,这样显示问题出那里? 智*** 发表于 2026-5-25 11:21
请教大家,这样显示问题出那里?
感觉CS或其它线上有干扰,打乱了传输节奏。
先试下逐帧刷纯色,量下CS WR RS这些关键信号上有没有毛刺。
帮我看下怎回是,W25QXX我只烧入了13张图片的BIN,是不是还要烧图片尺寸的参数呀? 智*** 发表于 2026-5-25 14:35
帮我看下怎回是,W25QXX我只烧入了13张图片的BIN,是不是还要烧图片尺寸的参数呀? ...
初值看看?
要么仿真问题打印出来看看,或者QSPI RAM越界覆盖了?
ercircle 发表于 2026-5-25 15:37
初值看看?
要么仿真问题打印出来看看,或者QSPI RAM越界覆盖了?
这我不知在那改,请指点{:baoquan:}这是ST32G144246的63例程,不存在你说的吧?