【TFT屏幕】1.44寸彩屏

news/2024/11/13 13:57:46/

文章目录

    • 一.硬件层——引脚配置的移植
    • 二.应用层——显示函数的移植
        • 1. 移植显示一个字符函数
        • 2. 移植显示数字函数
        • 3.叠加方式选择

一.硬件层——引脚配置的移植

宏定义的方式,直接修改引脚,实测可直接更改,非常方便移植
在这里插入图片描述

/******************************************************************************
//本程序适用与STM32F103C8
//              GND   电源地
//              VCC   接5V或3.3v电源
//              SCL   接PA5(SCL)
//              SDA   接PA7(SDA)
//              RES   接PB0 --1
//              DC    接PB1 --0
//              CS    接PA4 --B10
//							BL		接PB10 -- A4
*******************************************************************************/
//******************************************************************************/
#define LCD_CTRLA   	  	GPIOA		//定义TFT数据端口
#define LCD_CTRLB   	  	GPIOB		//定义TFT数据端口#define LCD_SCL        	GPIO_Pin_5	//PB13--->>TFT --SCL/SCK
#define LCD_SDA        	GPIO_Pin_7	//PB15 MOSI--->>TFT --SDA/DIN
#define LCD_CS        	GPIO_Pin_10  //MCU_PB11--->>TFT --CS/CE#define LCD_LED        	GPIO_Pin_4  //MCU_PB9--->>TFT --BL
#define LCD_RS         	GPIO_Pin_0	//PB11--->>TFT --RS/DC
#define LCD_RST     	GPIO_Pin_1	//PB10--->>TFT --RST//#define LCD_CS_SET(x) LCD_CTRL->ODR=(LCD_CTRL->ODR&~LCD_CS)|(x ? LCD_CS:0)//液晶控制口置1操作语句宏定义
#define	LCD_SCL_SET  	LCD_CTRLA->BSRR=LCD_SCL    
#define	LCD_SDA_SET  	LCD_CTRLA->BSRR=LCD_SDA   
#define	LCD_CS_SET  	LCD_CTRLB->BSRR=LCD_CS  #define	LCD_LED_SET  	LCD_CTRLA->BSRR=LCD_LED   
#define	LCD_RS_SET  	LCD_CTRLB->BSRR=LCD_RS 
#define	LCD_RST_SET  	LCD_CTRLB->BSRR=LCD_RST 
//液晶控制口置0操作语句宏定义
#define	LCD_SCL_CLR  	LCD_CTRLA->BRR=LCD_SCL  
#define	LCD_SDA_CLR  	LCD_CTRLA->BRR=LCD_SDA 
#define	LCD_CS_CLR  	LCD_CTRLB->BRR=LCD_CS #define	LCD_LED_CLR  	LCD_CTRLA->BRR=LCD_LED 
#define	LCD_RST_CLR  	LCD_CTRLB->BRR=LCD_RST
#define	LCD_RS_CLR  	LCD_CTRLB->BRR=LCD_RS #define LCD_DATAOUT(x) LCD_DATA->ODR=x; //数据输出
#define LCD_DATAIN     LCD_DATA->IDR;   //数据输入

取模方式
在这里插入图片描述

二.应用层——显示函数的移植

技术交流,调试帮助,技术V:anwarmaries Q:1083091092

1. 移植显示一个字符函数

//在指定位置显示一个字符
//x,y:起始坐标
//num:要显示的字符:" "--->"~"
//size:字体大小 12/16/24
//mode:叠加方式(1)还是非叠加方式(0)
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{u8 temp, t1, t;u16 y0 = y;u8 csize = (size / 8 + ((size % 8) ? 1 : 0)) * (size / 2);  //得到字体一个字符对应点阵集所占的字节数num = num - ' ';    //得到偏移后的值(ASCII字库是从空格开始取模,所以-' '就是对应字符的字库)for (t = 0; t < csize; t++){if (size == 12)temp = asc2_1206[num][t];        //调用1206字体else if (size == 16)temp = asc2_1608[num][t];   //调用1608字体else if (size == 24)temp = asc2_2412[num][t];   //调用2412字体else return;                                    //没有的字库for (t1 = 0; t1 < 8; t1++){if (temp & 0x80)LCD_Fast_DrawPoint(x, y, POINT_COLOR);else if (mode == 0)LCD_Fast_DrawPoint(x, y, BACK_COLOR);temp <<= 1;y++;if (y >= lcddev.height)return;      //超区域了if ((y - y0) == size){y = y0;x++;if (x >= lcddev.width)return;   //超区域了break;}}}
}

2. 移植显示数字函数

//m^n函数
//返回值:m^n次方.
u32 LCD_Pow(u8 m,u8 n)
{u32 result=1;while(n--)result*=m;    return result;
}
//显示数字,高位为0,则不显示
//x,y :起点坐标
//len :数字的位数
//size:字体大小
//color:颜色 
//num:数值(0~4294967295);
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size)
{u8 t, temp;u8 enshow = 0;for (t = 0; t < len; t++){temp = (num / LCD_Pow(10, len - t - 1)) % 10;if (enshow == 0 && t < (len - 1)){if (temp == 0){LCD_ShowChar(x + (size / 2)*t, y, ' ', size, 0);continue;}else enshow = 1;}LCD_ShowChar(x + (size / 2)*t, y, temp + '0', size, 0);}
} 

在这里插入图片描述

3.叠加方式选择

mode:叠加方式(1)还是非叠加方式(0)
在显示变化数据使用 非叠加模式0
在这里插入图片描述


http://www.ppmy.cn/news/194946.html

相关文章

Android手机尺寸相关概念

1.手机的尺寸: 屏幕对角线的长度,单位为英寸(2.54cm) 2.手机的分辨率: 屏幕能显示的像素的数量, 一般用在长方向上数量*宽方向上数量来表达 3.手机的像素密度: pixels per inch&#xff0c;也称PPi&#xff0c;即每英寸屏幕能显示的像素数&#xff0c;像素密度越大&#xff0c;…

常见android手机分辨率(4:3 5:3 16:9 *VGA *HD 720p 1080p )

手机常见分辨率: 4:3 VGA 640*480 (Video Graphics Array) QVGA 320*240 (Quarter VGA) HVGA 480*320 (Half-size VGA) SVGA 800*600 (Super VGA) 5:3 WVGA 800*480 (Wide VGA) 16:9 FWVGA 854*480 (Full Wide VGA) HD 1920*1080 High Definition QHD 960*…

手机尺寸、分辨率

英寸&#xff08;Inch&#xff09; 英寸是我们常用的长度单位。英国是工业革命的发源地&#xff0c;英寸在工业领域被广泛使用&#xff0c;很多图纸、铭牌上都是用英寸作为长度单位。显示设备特别是电视机使用英寸来表示大小&#xff0c;手机屏幕也继承了这个计量单位。在显示…

常用手机屏幕尺寸大小

iphone5: 320*568 iphone6: 375*667 iphone6 plus:414*736 参考&#xff1a;http://www.kuku8.cc/html5/1728.html

Android手机中的尺寸单位

介绍一些Android手机中的常见尺寸单位&#xff1a;px、dp、sp、pt等。 1. px单位 px为pixel的缩写&#xff0c;1px代表一个物理像素点。在Android开发中&#xff0c;很少使用px单位&#xff0c;因为同样100px的图片&#xff0c;在不同手机上显示的实际大小可能不同&#xff0…

app在4寸屏幕上显示只有3.5寸问题

app在4寸屏幕上显示只有3.5寸问题&#xff0c;上面下面都有一段黑色的空白区域。视图只占据了3.5寸320*480的空间。 问题解决方案&#xff1a; 参考&#xff1a;http://stackoverflow.com/questions/12518879/extend-app-for-iphone-5-best-practice http://stackoverflow.c…

常用手机尺寸以及分辨率

最近做的页面用到手机尺寸和常用的分辨率对比&#xff0c;整理了一下&#xff0c;共享一下&#xff1a; 320*2403.7400*2403.8432*2404480*2724.2480*2704.3480*3204.4480*3604.5640*3604.7640*4804.8800*4805854*4805.1800*6005.2960*5405.3960*6405.5960*7205.71024*5765.810…

同时适配3.5寸和4寸屏幕

编写一个宏定义用判断当前设备是3.4寸还是4寸。#define iPhone5 ([UIScreeninstancesRespondToSelector:selector(currentMode)] ?CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen]currentMode].size) : NO)举个界面布局的例子&#xff1a;closeBtn.frame CG…