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

[TOC](Arduino 1.44寸st7735s TFT+SD卡显示图片)

硬件

硬件列表

硬件数量
Arduino UNO1
1.44寸 128*128 st7735s TFT屏1
SD卡(我测试时使用的是8G tf卡1
tf卡模块1

硬件外观

Arduino UNO

Arduino UNO

1.44寸 128*128 st7735s TFT屏

TF卡模块

在这里插入图片描述

接线方式

TFTarduino
GNDGND
VCC5V
BLKD12
RSTD9
DCD8
CSD10
SCKD13
SDAD11
TF卡模块arduino
GNDGND
VCC5V
MISOD12
MOSID11
SCKD13
CSD4

软件

取模设置

在这里插入图片描述

Arduino程序

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
#include <SD.h>
#define TFT_CS        10
#define TFT_RST        9                //我这里用的arduino硬复位,软复位请用9脚
#define TFT_DC         8

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

unsigned int k=0;
String fn = "1.bin";  					//此处为取模取出来的图片二进制文件名
void setup() {
  Serial.begin(9600);
  SD.begin(4);
  tft.initR(INITR_144GREENTAB); 		// Init ST7735R chip, green tab
  tft.fillScreen(ST77XX_BLACK);
  showpic(0,0,128,87,fn);      			//图片显示函数,第一为x起始位,第二为y起始位,第三为x结束位,第四为y结束位,第五为图片bin文件名字
}

void loop() {
  
}
void showpic(unsigned int x,unsigned y,unsigned int xe,unsigned int ye,String filename){
  int i,j;                                //用来循环xy坐标
  unsigned int p;                         //存放图片完整16位数据
  tft.setCursor(x, y);
  File pic=SD.open(filename,FILE_READ);
  while (pic.available()) {
      for(i=y;i<ye;i++){
      for(j=x;j<xe;j++){
      p=pic.read()<<8|pic.read();         //把文件高八位和底八位拼接
      tft.fillRect(i,j,1,1,p);            //刷块显示
      }
      }
  }
  pic.close();
}

最终效果图

在这里插入图片描述
PS:无论是arduino还是写文章我都是萌新,请各位大佬下手轻点。有问题欢迎指正。

  • 5
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值