文章目录

  • 一.硬件层——引脚配置的移植
  • 二.应用层——显示函数的移植
    • 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寸彩屏相关推荐

  1. ESP8266驱动1.44寸TFT屏幕(例程问题)

    ESP8266驱动1.44寸TFT屏幕(例程问题) 一.接线说明 二.引脚对应 D1 - 5 D2 - 4 D3 - 0 三.修改例程 将D1.D2.D3改成5.4.0然后编译上传即可 .D2.D3改 ...

  2. ESP32 SPI驱动1.44寸TFT彩屏(5)

    TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为:Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD.STN-LCD 的 ...

  3. 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 ...

  4. STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)中景园屏幕资料链接:点击跳转        提取码:8888 2.硬件准备 (1)1.44寸TFT彩屏 (2)F1的板子,本例使用经 ...

  5. Arduino 1.44寸st7735s TFT+SD卡显示图片

    [TOC](Arduino 1.44寸st7735s TFT+SD卡显示图片) 硬件 硬件列表 硬件 数量 Arduino UNO 1 1.44寸 128*128 st7735s TFT屏 1 SD卡 ...

  6. STM32+CubeMax驱动1.3寸TFT屏幕

    1.3寸TFT屏幕的使用 使用STM32F103C8T6驱动1.3寸TFT屏幕的驱动代码用法 这里使用的开发板和屏幕都来自某宝店家大越创新 1. 硬件接线 开发板上已经预留了屏幕的位置,直接将屏幕插上 ...

  7. NanoPi NEO Air使用十三:使用自带的fbtft驱动点亮SPI接口TFT屏幕,ST7789V,模块加载的方式

    上节使用fbtft来驱动SPI接口TFT屏幕,但是是编译进内核的方式. 本节再来测试下编译成模块的用法. 引脚 240x240分辨率,1.3寸,主控为ST7789VW. 与开发板的引脚连接确定如下: ...

  8. 嵌入式Linux使用TFT屏幕:使用树莓派4B的MIPI-DSI接口点亮ST7701S屏幕

    前言 距上一次写文章有点时间了,今天调通了一块MIPI DSI屏幕, 特写一篇笔记置于此,希望能帮到也想研究这个MIPI DSI的朋友. 正题 博主使用的开发板为Raspbery Pi 4B,系统为R ...

  9. NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

最新文章

  1. TeamViewer介绍:远程控制计算机
  2. python3 多进程 同步
  3. Ouroboros:一个可证明安全的PoS区块链协议 (共识介绍)
  4. 【设计模式系列】行为型之责任链模式
  5. 通风与防排烟工程电子书_工厂防排烟系统与通风空调系统的兼用设计
  6. 天津盈克斯机器人科技_坐标天津,适合亲子游的科技馆,亮点是机器人展区
  7. 在Linux上下载arduino
  8. 芝麻授权 java调用_手机浏览器怎么调用支付宝进行用户授权呢?
  9. scrapy爬取彼岸图网照片(搜索关键字,去重)
  10. 拉丁超立方抽样 Latin hypercube sampling,java 代码
  11. SCM供应链系统有什么价值?
  12. MySQL基础语法大全(尚硅谷)
  13. gensim安装教程
  14. WIN10 开启SFTP FTP FTPS配置
  15. ACL’21 | 对话系统也要进军多模态了!
  16. 中国黑客档案:中国红客联盟(转)
  17. 系统分析师学习笔记(七)
  18. 怎么让段落自动空两格_word自动空两格 如何设置word中段首自动空两格
  19. 矩阵秩相关不等式的题目
  20. 数学与计算机教学设计,信息技术与数学整合教学设计

热门文章

  1. FrameBuffer操作
  2. 几乎所有的RPG游戏(一种源自《龙与地下城》的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。本次上机要求编写一个简化的创建游戏角色的程序。
  3. SQLServer之创建唯一非聚集索引
  4. ubuntu安装discourse论坛----结合在apache服务上建立虚拟主机
  5. 怎么用u盘重装系统?石大师u盘重装win10系统步骤
  6. Matlab扫雷记录01-matlab中获得向量非零元素个数
  7. 大厂面试Redis:缓存雪崩、缓存穿透、缓存击穿
  8. openjudge666:放苹果
  9. uni-app学习(九):computed
  10. 荣耀30pro系统_荣耀30pro和pro+的区别_荣耀30pro和pro+的区别对比详情 - 系统家园