【TFT屏幕】1.44寸彩屏
文章目录
- 一.硬件层——引脚配置的移植
- 二.应用层——显示函数的移植
- 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
【TFT屏幕】1.44寸彩屏相关推荐
- ESP8266驱动1.44寸TFT屏幕(例程问题)
ESP8266驱动1.44寸TFT屏幕(例程问题) 一.接线说明 二.引脚对应 D1 - 5 D2 - 4 D3 - 0 三.修改例程 将D1.D2.D3改成5.4.0然后编译上传即可 .D2.D3改 ...
- ESP32 SPI驱动1.44寸TFT彩屏(5)
TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为:Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD.STN-LCD 的 ...
- NodeMCU-ESP8266使用TFT_eSPI库驱动IC为ST7735的1.44寸TFT屏幕(TFT_eSPI详解)
文章目录 1. TFT_eSPI 驱动TFT屏幕 2. TFT_eSPI详解 2.1 文件配置 2.2 类.常用函数 2.1.1 TFT_eSPI类 2.1.2 Sprite 类 3. OVERLAP ...
- STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏
1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)中景园屏幕资料链接:点击跳转 提取码:8888 2.硬件准备 (1)1.44寸TFT彩屏 (2)F1的板子,本例使用经 ...
- Arduino 1.44寸st7735s TFT+SD卡显示图片
[TOC](Arduino 1.44寸st7735s TFT+SD卡显示图片) 硬件 硬件列表 硬件 数量 Arduino UNO 1 1.44寸 128*128 st7735s TFT屏 1 SD卡 ...
- STM32+CubeMax驱动1.3寸TFT屏幕
1.3寸TFT屏幕的使用 使用STM32F103C8T6驱动1.3寸TFT屏幕的驱动代码用法 这里使用的开发板和屏幕都来自某宝店家大越创新 1. 硬件接线 开发板上已经预留了屏幕的位置,直接将屏幕插上 ...
- NanoPi NEO Air使用十三:使用自带的fbtft驱动点亮SPI接口TFT屏幕,ST7789V,模块加载的方式
上节使用fbtft来驱动SPI接口TFT屏幕,但是是编译进内核的方式. 本节再来测试下编译成模块的用法. 引脚 240x240分辨率,1.3寸,主控为ST7789VW. 与开发板的引脚连接确定如下: ...
- 嵌入式Linux使用TFT屏幕:使用树莓派4B的MIPI-DSI接口点亮ST7701S屏幕
前言 距上一次写文章有点时间了,今天调通了一块MIPI DSI屏幕, 特写一篇笔记置于此,希望能帮到也想研究这个MIPI DSI的朋友. 正题 博主使用的开发板为Raspbery Pi 4B,系统为R ...
- NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
最新文章
- TeamViewer介绍:远程控制计算机
- python3 多进程 同步
- Ouroboros:一个可证明安全的PoS区块链协议 (共识介绍)
- 【设计模式系列】行为型之责任链模式
- 通风与防排烟工程电子书_工厂防排烟系统与通风空调系统的兼用设计
- 天津盈克斯机器人科技_坐标天津,适合亲子游的科技馆,亮点是机器人展区
- 在Linux上下载arduino
- 芝麻授权 java调用_手机浏览器怎么调用支付宝进行用户授权呢?
- scrapy爬取彼岸图网照片(搜索关键字,去重)
- 拉丁超立方抽样 Latin hypercube sampling,java 代码
- SCM供应链系统有什么价值?
- MySQL基础语法大全(尚硅谷)
- gensim安装教程
- WIN10 开启SFTP FTP FTPS配置
- ACL’21 | 对话系统也要进军多模态了!
- 中国黑客档案:中国红客联盟(转)
- 系统分析师学习笔记(七)
- 怎么让段落自动空两格_word自动空两格 如何设置word中段首自动空两格
- 矩阵秩相关不等式的题目
- 数学与计算机教学设计,信息技术与数学整合教学设计
热门文章
- FrameBuffer操作
- 几乎所有的RPG游戏(一种源自《龙与地下城》的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。本次上机要求编写一个简化的创建游戏角色的程序。
- SQLServer之创建唯一非聚集索引
- ubuntu安装discourse论坛----结合在apache服务上建立虚拟主机
- 怎么用u盘重装系统?石大师u盘重装win10系统步骤
- Matlab扫雷记录01-matlab中获得向量非零元素个数
- 大厂面试Redis:缓存雪崩、缓存穿透、缓存击穿
- openjudge666:放苹果
- uni-app学习(九):computed
- 荣耀30pro系统_荣耀30pro和pro+的区别_荣耀30pro和pro+的区别对比详情 - 系统家园