找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1544|回复: 7
打印 上一主题 下一主题
收起左侧

求大神帮忙点亮TFT彩屏

[复制链接]
跳转到指定楼层
楼主
1000黑币
近日朋友送了个TFT3.5寸的彩屏,用的是ILI9488的驱动这个是屏的正面:

这个是屏的反面:

这个屏的例程在KELL-C51下编程通过,可以显示,
但是我现在想用STC32G12K128点亮它,可是这个屏的例程在KELL-C251下很不友好,很多结构体错误
由于本人刚学C,对于这种错误搞不定,一下出来几百个错误,
在此请教大神,帮我移植一下这个程序,可以让它在STC32-12K128下完美运行,或者说可以移植到KELL-C251下编译
知道各位大神都很忙,在此说声谢谢了!

这个是它原来的例程:
ILI9488+CTC3.5_4SPI_OK.7z (90.06 KB, 下载次数: 0)



最佳答案

查看完整内容

SPI驱动TFT屏ILI9488的程序@STC32 ===STC32G12K128, STC8H8K64U, 开源代码源程序见附件 /=========================================电源接线================================================// //5V接DC 5V电源 //GND接地 //=======================================液晶屏数据线接线==========================================// //本模块默认数据总线类型为SPI //液晶屏模块 单片机 // SDI(MOSI) ...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2024-12-28 10:57 | 只看该作者
SPI驱动TFT屏ILI9488的程序@STC32
===STC32G12K128, STC8H8K64U, 开源代码源程序见附件




/=========================================电源接线================================================//
//5V接DC 5V电源
//GND接地
//=======================================液晶屏数据线接线==========================================//
//本模块默认数据总线类型为SPI
//液晶屏模块            单片机
// SDI(MOSI)     接       P23        //SPI写信号
// SDO(MISO)     接       P         //SPI读信号,如果不需要读功能,此管脚可不接
//=======================================液晶屏控制线接线==========================================//
//液晶屏模块            单片机
//  CS           接       P34       //片选控制信号
//  RESET        接       P43       //复位信号
//  DC           接       P45       //数据/命令选择控制信号
//  SCK          接       P25       //SPI时钟信号
//  LED          接       P42       //背光控制信号,如果使用STC89C52RC单片机或者不需要控制,接3.3V
//=========================================触摸屏接线=========================================//
//不使用触摸或者模块本身不带触摸,则可不连接

//触摸屏使用的数据总线类型为SPI
//触摸屏模块            单片机
//  T_CLK        接       P25       //触摸屏SPI时钟信号
//  T_CS         接       P52       //触摸屏片选控制信号
//  T_DIN        接       P23       //触摸屏SPI写信号
//  T_DO         接       P24       //触摸屏SPI读信号
//  T_IRQ        接       P36       //触摸屏响应检查信号,如单片机无P4组,请自行更改其他可用IO并修改代码定义
//**************************************************************************************************/





STC32G_ILI9488.zip

113.3 KB, 下载次数: 0

回复

使用道具 举报

板凳
ID:61140 发表于 2024-12-29 14:13 | 只看该作者
angmall 发表于 2024-12-28 20:52
SPI驱动TFT屏ILI9488的程序@STC32
===STC32G12K128, STC8H8K64U, 开源代码源程序见附件

这个程序引脚定义sbit在哪里啊,没找到
回复

使用道具 举报

地板
ID:155507 发表于 2024-12-29 21:41 | 只看该作者
xiaoyuxinke 发表于 2024-12-29 14:13
这个程序引脚定义sbit在哪里啊,没找到

就是在那个LCD.h里面啊。


这个是用硬件SPI,不可以随便换。

回复

使用道具 举报

5#
ID:61140 发表于 2024-12-30 10:06 | 只看该作者
angmall 发表于 2024-12-29 21:41
就是在那个LCD.h里面啊。

我只是用了S2SPI_S的11,也就是第四组P7.4-P7.5-P7.6-P7.7
P_SW3 = 0x30;
但是无法显示,只是白屏
不知道什么原因,头痛……。
回复

使用道具 举报

6#
ID:61140 发表于 2024-12-30 10:19 | 只看该作者
angmall 发表于 2024-12-29 21:41
就是在那个LCD.h里面啊。


我用的这个,但是无法显示,一直白屏
回复

使用道具 举报

7#
ID:155507 发表于 2024-12-30 12:36 | 只看该作者
xiaoyuxinke 发表于 2024-12-30 10:06
我只是用了S2SPI_S的11,也就是第四组P7.4-P7.5-P7.6-P7.7
P_SW3 = 0x30;
但是无法显示,只是白屏


右边这一排是你的TFT彩屏 初始化参数。他和我的彩屏初始化参数不一样,你可以换一下。


void LCD_Init(void)
{
        SPI_init(); //初始化硬件SPI
        LCD_ResetFun(); //初始化之前复位
//************* ILI9488初始化**********//        //ILI9488+CTC3.5
        LCD_WR_REG(0XF7);                                        WriteComm(0XF7);
        LCD_WR_DATA(0xA9);                                        WriteData(0xA9);
        LCD_WR_DATA(0x51);                                        WriteData(0x51);
        LCD_WR_DATA(0x2C);                                        WriteData(0x2C);
        LCD_WR_DATA(0x82);                                        WriteData(0x82);

        LCD_WR_REG(0xC0);                                        WriteComm(0xC0);
        LCD_WR_DATA(0x11);                  WriteData(0x10);
        LCD_WR_DATA(0x09);                  WriteData(0x10);

        LCD_WR_REG(0xC1);                                        WriteComm(0xC1);
        LCD_WR_DATA(0x41);                  WriteData(0x41);

        LCD_WR_REG(0XC5);                                        WriteComm(0xC5);
        LCD_WR_DATA(0x00);                  WriteData(0x00);
        LCD_WR_DATA(0x0A);                  WriteData(0x22);
        LCD_WR_DATA(0x80);                  WriteData(0x80);

        LCD_WR_REG(0xB1);                                        WriteComm(0xB1);
        LCD_WR_DATA(0xB0);                  WriteData(0xB0);
        LCD_WR_DATA(0x11);                  WriteData(0x11);

        LCD_WR_REG(0xB4);                                        WriteComm(0xB4);
        LCD_WR_DATA(0x02);                  WriteData(0x02);

        LCD_WR_REG(0xB6);                                        WriteComm(0xB6);
        LCD_WR_DATA(0x02);                  WriteData(0x02);
        LCD_WR_DATA(0x42);                  WriteData(0x02);

        LCD_WR_REG(0xB7);                                        WriteComm(0xB7);
        LCD_WR_DATA(0xc6);                  WriteData(0xC6);

        LCD_WR_REG(0xBE);                                        //WriteComm(0XBE);
        LCD_WR_DATA(0x00);                  //WriteData(0x00);
        LCD_WR_DATA(0x04);                  //WriteData(0x04);

        LCD_WR_REG(0xE9);                                        WriteComm(0xE9);
        LCD_WR_DATA(0x00);                  WriteData(0x00);

        LCD_WR_REG(0x36);                                                        WriteComm(0x36);
        LCD_WR_DATA((1<<3)|(0<<7)|(1<<6)|(1<<5));   WriteData(0x48);

        LCD_WR_REG(0x3A);                                WriteComm(0x3A);       
        LCD_WR_DATA(0x66);              WriteData(0x66);

        LCD_WR_REG(0xE0);                                WriteComm(0xE0);
        LCD_WR_DATA(0x00);              WriteData(0x00);
        LCD_WR_DATA(0x07);              WriteData(0x07);
        LCD_WR_DATA(0x10);              WriteData(0x0f);
        LCD_WR_DATA(0x09);              WriteData(0x0D);
        LCD_WR_DATA(0x17);              WriteData(0x1B);
        LCD_WR_DATA(0x0B);              WriteData(0x0A);
        LCD_WR_DATA(0x41);              WriteData(0x3c);
        LCD_WR_DATA(0x89);              WriteData(0x78);
        LCD_WR_DATA(0x4B);              WriteData(0x4A);
        LCD_WR_DATA(0x0A);              WriteData(0x07);
        LCD_WR_DATA(0x0C);              WriteData(0x0E);
        LCD_WR_DATA(0x0E);              WriteData(0x09);
        LCD_WR_DATA(0x18);              WriteData(0x1B);
        LCD_WR_DATA(0x1B);              WriteData(0x1e);
        LCD_WR_DATA(0x0F);              WriteData(0x0f);

        LCD_WR_REG(0XE1);                                WriteComm(0xE1);               
        LCD_WR_DATA(0x00);              WriteData(0x00);
        LCD_WR_DATA(0x17);              WriteData(0x22);
        LCD_WR_DATA(0x1A);              WriteData(0x24);
        LCD_WR_DATA(0x04);              WriteData(0x06);
        LCD_WR_DATA(0x0E);              WriteData(0x12);
        LCD_WR_DATA(0x06);              WriteData(0x07);
        LCD_WR_DATA(0x2F);              WriteData(0x36);
        LCD_WR_DATA(0x45);              WriteData(0x47);
        LCD_WR_DATA(0x43);              WriteData(0x47);
        LCD_WR_DATA(0x02);              WriteData(0x06);
        LCD_WR_DATA(0x0A);              WriteData(0x0a);
        LCD_WR_DATA(0x09);              WriteData(0x07);
        LCD_WR_DATA(0x32);              WriteData(0x30);
        LCD_WR_DATA(0x36);              WriteData(0x37);
        LCD_WR_DATA(0x0F);              WriteData(0x0f);

        LCD_WR_REG(0x11);  //Sleep OUT (11h)
        delay_ms(120);
        LCD_WR_REG(0x29);  //Display ON (29h)        

        //设置LCD属性参数
        LCD_direction(USE_HORIZONTAL);//设置LCD显示方向
        LCD_BL=1;//点亮背光         
}



回复

使用道具 举报

8#
ID:61140 发表于 2024-12-30 20:03 | 只看该作者
angmall 发表于 2024-12-30 12:36
右边这一排是你的TFT彩屏 初始化参数。他和我的彩屏初始化参数不一样,你可以换一下。

算了,不搞了,我还是个菜鸟,对C语言一知半解,仅限于会弄个流水灯
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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