找回密码
 立即注册
查看: 2310|回复: 34

屠龙刀三STC32G12K128实验板驱动TFT(128x160)彩屏

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-6-1 20:29:33 | 显示全部楼层 |阅读模式
本帖最后由 浦江一水 于 2024-6-5 09:22 编辑

屠龙刀三STC32G12K128实验板驱动TFT(128x160)彩屏


应坛友之需, 手头正好也有相同硬件配置, 匆匆编写了一段实验程序上传,供参考。

屠龙刀三STC32G12K128实验板,已有7针OLED显示屏接口,而本实验用屏是8针引脚的。

前7针的定义排列与实验板接口相同,彩屏多出的第8脚是BL背光控制端。本实验用杜邦线将其接到VCC,使显示屏背光常亮。
(当然也可接到MCU的其它某脚,可开关背光或控制亮度,本实验忽略。)

实验内容分为三页, 间隔2s自动循环切换显示:
第一页展示:
画点、画水平线、画垂直线、中西文字符串显示。
1-画点线矩形字符串.jpg



第二页展示:
彩色BMP图标显示。
2-彩色图标显示.jpg

第三页展示:
自定义32色,(编号0..31),矩形色块显示。
3-32色方块显示.jpg

主程序 Main.C
//===========================================================
// TFT  1.8"  彩色显示屏 160*128 实验程序
// 驱动: ST7735
// 基于: STC32G12K128芯片实验板编程 屠龙刀三核心实验板
// 整理:编程: 浦晓明(浦江一水) For 国芯论坛 2024-06-01
//===========================================================
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "STC32G.h"
#include "LCD_7735.H"
#include "PIC.H"

unsigned char k;
char S[20];

void Delay1ms(void)        //@22.1184MHz
{ unsigned char data i, j;
      //_nop_();_nop_();
        i = 22;        j = 128;
        do
        {        while (--j);
        } while (--i);
}
void Delayms(u16 count)
{ unsigned int i;
  for(i=0;i<count;i++)      
  Delay1ms();            
}
//主程序入口
void main(void)
{
unsigned char i;
  unsigned int wait=0;
  //IO端口初始化
  WTST  = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  EAXFR = 1; //扩展寄存器(XFR)访问使能
  CKCON = 0; //提高访问XRAM速度
  //IO端口初始化//全部为双向口
  P0M1 = 0x00;   P0M0 = 0x04;   //设置为准双向口: P0.2推挽输出控制背光
  P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  LCD_Init();
  while(1)
  {  
    LCD_CLS(1);                    //蓝色清屏
    LCD_Point(5,5,15);           //画点测试
    LCD_LineH(5,8,50,10);     //画水平线
    LCD_LineV(5,8,50,10);     //画垂直线
    LCD_Line(5,8,55,58,12);  //两点一线
    LCD_Box(10,95,100,28,15,0,4);                //画矩形方框(可指定边框色和填充色)
    LCD_A08(20,15,"A08_012345",15,1,10);  //显示6*8字符串
    LCD_A12(20,30,"A12_012345",15,1,10);  //显示8*12字符串
    LCD_A16(20,45,"A16_012345",15,1,10);  //显示8*16字符串
    LCD_A24(20,64,"A24_0123",15,1,8);       //显示12*24字符串
    LCD_H16(24,102,"单片机STC",14,4);       //16点阵中西文混合显示字符串
    LCD_H24( 8,130,"单片机STC",12,1);        //24点阵中西文混合显示字符串
    Delayms(2000);
    LCD_Box(0,130,127,28,1,1,1);                //局部清屏
    LCD_BMP( 0, 5,64,64,P_SET);                 //彩色图标显示
    LCD_BMP(64, 5,64,64,P_ZER);
    LCD_BMP( 0,69,64,64,P_XSW);
    LCD_BMP(64,69,64,64,P_SYS);
    LCD_A16(0,140,"LCD_ST7735_DEMO.",10,0,16);
    Delayms(2000);
    LCD_CLS(0);
    for(i=0;i<16;i++)LCD_Box(0, i*10,63,10,7,7,i);         //显示彩色块(色号0..15)
    for(i=0;i<16;i++)LCD_Box(64,i*10,63,10,7,7,(
unsigned char)(i+16));  //显示彩色块(色号16..31)
    Delayms(2000);
  }
}


工程文件包,含LCD7735.C显示屏驱动文件:
04-TestLCD7735(STC32G屠龙刀三).rar (885.94 KB, 下载次数: 146)

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-6-1 22:33:30 | 显示全部楼层
ST7735很常见的彩屏,这个可以有
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-01 07:24:50

4

主题

511

回帖

1991

积分

金牌会员

积分
1991
发表于 2024-6-2 19:07:12 | 显示全部楼层
谢谢了,下载认真学习了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-01 07:24:50

4

主题

511

回帖

1991

积分

金牌会员

积分
1991
发表于 2024-6-2 19:27:34 | 显示全部楼层
本帖最后由 科学妞妞 于 2024-6-2 19:44 编辑

stc32G的tft彩屏,做的好,放进例程里了,就是原程序直接编译,报错USER\LCD_7735.C(486): warning C47: 'pic': unreferenced parameter,什么意思不懂,怎么解决报错,请问
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-01 07:24:50

4

主题

511

回帖

1991

积分

金牌会员

积分
1991
发表于 2024-6-2 19:45:11 | 显示全部楼层
下载原程序直接编译,报错USER\LCD_7735.C(486): warning C47: 'pic': unreferenced parameter,什么意思不懂,怎么解决报错,请问
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:502
  • 最近打卡:2025-05-01 08:01:38
已绑定手机

1

主题

833

回帖

1441

积分

金牌会员

积分
1441
发表于 2024-6-2 20:15:29 | 显示全部楼层
感谢分享,手里有一块屏也是ST7735驱动
靡不有初,鲜克有终
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-6-2 21:29:52 | 显示全部楼层
科学*** 发表于 2024-6-2 19:45
下载原程序直接编译,报错USER\LCD_7735.C(486): warning C47: 'pic': unreferenced parameter,什么意思不 ...

这是一个警告,不是错误,是可以忽略的, 再次编译,也许就不提示了。
意思是某个参数未引用到,或者不够严谨,估猜原因是在PIC.H头文件中,有六个图标数组定义,而本实验程序中只用了四个。
这也与编译器版本及设置条件有关, 版本较高的编译器,语法检查比较严格,稍有不慎,就警告。这也是常见的现象,往往换个高版本编译环境就会出现警告提示。
当然应该尽量克服的,要做到无瑕疵、无懈可击。源文件在我这里编译是无警告、无错误的,我用的版本是KeilC51v959+C251。

顺便你也做个试验:删去PIC.H文件图标数组中没有用到那两个图标数组。然后在你的编译环境下,再编译一下,看看是否有警告,如果没有了,也验证了一下我的估猜。
或者用此PIC.H文件覆盖一下...
PIC.H (164.35 KB, 下载次数: 105)


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-6-2 21:33:18 | 显示全部楼层
小涵*** 发表于 2024-6-2 20:15
感谢分享,手里有一块屏也是ST7735驱动

感谢这位坛友的浏览与回复。 ST7735_TFT屏是比较常见,也好用,适合爱好者做实验。

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:464
  • 最近打卡:2025-04-29 08:25:45

10

主题

130

回帖

564

积分

高级会员

积分
564
发表于 2024-6-2 21:44:11 | 显示全部楼层
正好有一块屏
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-01 07:24:50

4

主题

511

回帖

1991

积分

金牌会员

积分
1991
发表于 2024-6-3 18:58:14 | 显示全部楼层
浦江*** 发表于 2024-6-2 21:29
这是一个警告,不是错误,是可以忽略的, 再次编译,也许就不提示了。
意思是某个参数未引用到,或者不够严 ...

按指导完成上述,再,重新编译,提示USER\LCD_7735.C(389): error C7: compilation aborted
请问
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:37 , Processed in 0.154639 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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