当前位置: 首页 > news >正文

怎么在网站添加链接视频seo优化教程

怎么在网站添加链接,视频seo优化教程,抖音代运营退款成功案例,建设资讯网站背景 最近入手了一块1.8寸的tft屏幕&#xff0c;通过学习文档&#xff0c;已经掌握了接线&#xff0c;显示英文、数字、矩形区域、划线、画点等操作&#xff0c; 但是想显示中文的时候操作比较复杂。 问题 1、arduino uno 驱动这款屏幕目前使的是自带的<TFT.h> 库操作…

背景

最近入手了一块1.8寸的tft屏幕,通过学习文档,已经掌握了接线,显示英文、数字、矩形区域、划线、画点等操作, 但是想显示中文的时候操作比较复杂。

问题

1、arduino uno 驱动这款屏幕目前使的是自带的<TFT.h> 库操作比较简单,不带中文百度很多内容都是espTFT库,对于arduion uno 来说不太适用,超内存了。

2、需要引入u8j2库,操作复杂。

解决措施

tft屏幕可以实现再对应的坐标画点,因此知道中文或者图案的内容,再对应的像素点上画点,就能实现想要的内容,处理如下

1、PCtoLCD2002 完美版,进行汉字取模

注意取模配置如上图所示红框所示,一个汉字的像素是16*16,液晶屏幕上的每个点,可以按需求修改。

生成的字模数据如下

 "我" :0x04, 0x40, 0x0E, 0x50, 0x78, 0x48, 0x08, 0x48, 0x08, 0x40, 0xFF, 0xFE, 0x08, 0x40, 0x08, 0x44, 0x0A, 0x44, 0x0C, 0x48, 0x18, 0x30, 0x68, 0x22, 0x08, 0x52, 0x08, 0x8A, 0x2B, 0x06, 0x10, 0x02

一个汉字:一共是32个 16进制的数据数组,取模逐行的话,则两位16进制代表一行,例如:0x04,0x40 的二进制是  00000100,01000000是一个汉字的第一行。

第一行(16)  0x04,0x40
第一行(2)   00000100,01000000
第二行(16)  0x0E,0x50
第二行(2)   00001110,01010000  

讲到这里原理就很明白了,把转出来的2进制进行遍历,遇到1时 就在屏幕上画点 TFTscreen.point(x, y);,但是需要注意的时,每处理2个16进制的数据,液晶上就需要换行,即Y轴坐标+1,横向扫描时,每扫描一个,X轴坐标+1,一个汉字最多加到16就要换行,这就是核心逻辑

#include <TFT.h>/*Arduino TFT text exampleThis example demonstrates how to draw text on theTFT with an Arduino. The Arduino reads the valueof an analog sensor attached to pin A0, and writesthe value to the LCD screen, updating everyquarter second.This example code is in the public domainCreated 15 April 2013 by Scott Fitzgeraldhttp://www.arduino.cc/en/Tutorial/TFTDisplayText*/#include <TFT.h>  // Arduino LCD library
#include <SPI.h>// pin definition for the Uno
#define cs 10
#define dc 9
#define rst 8// pin definition for the Leonardo
// #define cs   7
// #define dc   0
// #define rst  1// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);int xPos = 80;
int yPos = 64;// direction and speed
int xDir = 1;
int yDir = 1;// variables to keep track of the point's location
int xPrev = xPos;
int yPrev = yPos;int counter = 0;
// char array to print time
char printout[4];// 我
const byte wo[] = {0x04, 0x40, 0x0E, 0x50, 0x78, 0x48, 0x08, 0x48, 0x08, 0x40, 0xFF, 0xFE, 0x08, 0x40, 0x08, 0x44, 0x0A, 0x44, 0x0C, 0x48, 0x18, 0x30, 0x68, 0x22, 0x08, 0x52, 0x08, 0x8A, 0x2B, 0x06, 0x10, 0x02
};const byte ai[] = {0x00, 0x08, 0x01, 0xFC, 0x7E, 0x10, 0x22, 0x10, 0x11, 0x20, 0x7F, 0xFE, 0x42, 0x02, 0x82, 0x04,0x7F, 0xF8, 0x04, 0x00, 0x07, 0xF0, 0x0A, 0x10, 0x11, 0x20, 0x20, 0xC0, 0x43, 0x30, 0x1C, 0x0E
};const byte ni[] = {0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x11, 0xFE, 0x11, 0x02, 0x32, 0x04, 0x34, 0x20, 0x50, 0x20,0x91, 0x28, 0x11, 0x24, 0x12, 0x24, 0x12, 0x22, 0x14, 0x22, 0x10, 0x20, 0x10, 0xA0, 0x10, 0x40
};
const byte zhong[] = {0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08,0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
};const byte guo[] = {0x00, 0x00, 0x7F, 0xFC, 0x40, 0x04, 0x40, 0x04, 0x5F, 0xF4, 0x41, 0x04, 0x41, 0x04, 0x4F, 0xE4,0x41, 0x04, 0x41, 0x44, 0x41, 0x24, 0x5F, 0xF4, 0x40, 0x04, 0x40, 0x04, 0x7F, 0xFC, 0x40, 0x04
};#define CHAR_WIDTH 16
#define CHAR_HEIGHT 16void setup() {// Put this line at the beginning of every sketch that uses the GLCD:TFTscreen.begin();// clear the screen with a black backgroundTFTscreen.background(0, 0, 0);// write the static text to the screen// set the font color to whiteTFTscreen.stroke(255, 255, 255);//TFTscreen.loadFont(str1);Serial.begin(9600);
}void loop() {// set the font colorTFTscreen.stroke(255, 255, 255);TFTscreen.setTextSize(1);// // write the text to the top left corner of the screen// TFTscreen.text("Hello 2025", 0, 0);// TFTscreen.text("Goodbye 2024 ", 1, 20);// // delay(250);// TFTscreen.stroke(0, 128, 0);// TFTscreen.text("cxk", 20, 30);// //  画个线(x,y,end:x,end:y)// TFTscreen.stroke(255, 0, 0);// TFTscreen.line(0, 0, TFTscreen.width(), TFTscreen.height());// TFTscreen.line(0, TFTscreen.height(), TFTscreen.width(), 0);// 画一个正方形//   TFTscreen.noStroke(); // don't draw a line around the next rectangle// // 长方形内部填充颜色//   TFTscreen.fill(255,255,0); // set the fill color to green// // 长方形大小//   TFTscreen.rect(0,20,TFTscreen.width(),10); //draw a rectangle across the screen//   delay(1000);// TFTscreen.background(0,0,0); // clear the screen before starting again// delay(1000);// TFTscreen.stroke(255, 0, 0);//TFTscreen.point(-100, 25);  // col// TFTscreen.point(100, 50);  // col// TFTscreen.point(100, 75);  // colSerial.println("***********************************************");displayChineseChar(wo, 0, 0);displayChineseChar(ai, 16, 16);displayChineseChar(ni, 32, 32);displayChineseChar(zhong, 48, 48);displayChineseChar(guo, 64, 64);delay(1000);// chiness();
}// x ,y 显示位置
void displayChineseChar(char *bitmap, int16_t x, int16_t y) {// int chatLen = strlen(bitmap);// Serial.print("长度============");// Serial.println(chatLen);// int chinessChatLen = 16;  // 一个汉字32位16进制int xiangsu_y = 0;        // y坐标for (int row = 0; row < 32; row++) {// Serial.print("hexArray[");// Serial.print(row);// Serial.print("] = 0x");// Serial.println(bitmap[row], HEX);  // 使用HEX格式打印int i = 0;int xiangsu_x = 0;int dongtairow = 0;if (row % 2 == 0) {dongtairow = 0;xiangsu_y = xiangsu_y + 1;} else {dongtairow = row % 2;}for (i = 0; i < 8; i++) {bool bit = (bitmap[row] >> (7 - i)) & 0x01;if (bit > 0) {xiangsu_x = (dongtairow * 8) + i;TFTscreen.stroke(255, 255, 255);TFTscreen.point(xiangsu_x + x, xiangsu_y + y);}}}
}// 画矩阵团图案
// void drew() {
//   xPos = xPos + xDir;//   yPos = yPos + yDir;//   // check if the current location is different than the previous//   if (xPos != xPrev || yPos != yPrev) {//     TFTscreen.stroke(0, 128, 0);  // set the stroke color to black//     // 画一个点
//     TFTscreen.point(xPrev, yPrev);  // color in the previous point
//   }//   // draw a point in the current location//   TFTscreen.stroke(255, 255, 255);//   TFTscreen.point(xPos, yPos);//   // if the x or x position is at the screen edges, reverse direction//   if (xPos >= 160 || xPos <= 0) {//     xDir = xDir * -1;
//   }//   if (yPos >= 128 || yPos <= 0) {//     yDir = yDir * -1;
//   }//   // update the point's previous location//   xPrev = xPos;//   yPrev = yPos;//   // a 33ms delay means the screen updates 30 times a second//   delay(33);
// }

鸣谢

1、arduino uno 与tft屏幕配置链接 基于Arduino UNO的1.8寸TFT屏幕使用方法(Arduino系列十八)_arduino uno tft连线-CSDN博客

https://www.dragonlcm.com/1754.html


文章转载自:
http://wanjiacopy.Ljqd.cn
http://wanjiasonly.Ljqd.cn
http://wanjiahackensack.Ljqd.cn
http://wanjiaalgiers.Ljqd.cn
http://wanjiaopportunist.Ljqd.cn
http://wanjiaaustenian.Ljqd.cn
http://wanjiaatlantic.Ljqd.cn
http://wanjialeptosomatic.Ljqd.cn
http://wanjiawherethrough.Ljqd.cn
http://wanjiamonomoy.Ljqd.cn
http://wanjiathread.Ljqd.cn
http://wanjiaprequisite.Ljqd.cn
http://wanjiapliskie.Ljqd.cn
http://wanjiagunpaper.Ljqd.cn
http://wanjiabespoke.Ljqd.cn
http://wanjiaeducate.Ljqd.cn
http://wanjiamonbazillac.Ljqd.cn
http://wanjiaspurtle.Ljqd.cn
http://wanjiayardstick.Ljqd.cn
http://wanjiacallboy.Ljqd.cn
http://wanjiaphotolithograph.Ljqd.cn
http://wanjiasesotho.Ljqd.cn
http://wanjiaidiomorphism.Ljqd.cn
http://wanjiacelebrity.Ljqd.cn
http://wanjiaoutsang.Ljqd.cn
http://wanjiathrombectomy.Ljqd.cn
http://wanjiasunbrowned.Ljqd.cn
http://wanjiatrihedron.Ljqd.cn
http://wanjiaembryology.Ljqd.cn
http://wanjiasuperlattice.Ljqd.cn
http://wanjiaconsequentially.Ljqd.cn
http://wanjianonferrous.Ljqd.cn
http://wanjiakowait.Ljqd.cn
http://wanjianorthwesterly.Ljqd.cn
http://wanjiaflurried.Ljqd.cn
http://wanjiacarnality.Ljqd.cn
http://wanjiawitchweed.Ljqd.cn
http://wanjialacerant.Ljqd.cn
http://wanjiaindention.Ljqd.cn
http://wanjiapanocha.Ljqd.cn
http://wanjiapilulous.Ljqd.cn
http://wanjianitrifier.Ljqd.cn
http://wanjiaherry.Ljqd.cn
http://wanjiacyton.Ljqd.cn
http://wanjiasahuaro.Ljqd.cn
http://wanjiadustbinman.Ljqd.cn
http://wanjiachopine.Ljqd.cn
http://wanjiacleptomania.Ljqd.cn
http://wanjiachang.Ljqd.cn
http://wanjiaroe.Ljqd.cn
http://wanjiatenuto.Ljqd.cn
http://wanjiasaddlebag.Ljqd.cn
http://wanjiaincorrigible.Ljqd.cn
http://wanjiaconstructive.Ljqd.cn
http://wanjiashopwoman.Ljqd.cn
http://wanjialeninabad.Ljqd.cn
http://wanjiabuffalo.Ljqd.cn
http://wanjiatransference.Ljqd.cn
http://wanjiacrapehanger.Ljqd.cn
http://wanjiaturbocopter.Ljqd.cn
http://wanjiasavey.Ljqd.cn
http://wanjiaobviate.Ljqd.cn
http://wanjiapostscript.Ljqd.cn
http://wanjiasialolithiasis.Ljqd.cn
http://wanjiaargon.Ljqd.cn
http://wanjiazemstvo.Ljqd.cn
http://wanjiapoppied.Ljqd.cn
http://wanjiaexasperate.Ljqd.cn
http://wanjialever.Ljqd.cn
http://wanjiaawmous.Ljqd.cn
http://wanjiatubefast.Ljqd.cn
http://wanjiais.Ljqd.cn
http://wanjiagripe.Ljqd.cn
http://wanjiaburial.Ljqd.cn
http://wanjiapastoral.Ljqd.cn
http://wanjiaphormium.Ljqd.cn
http://wanjiamicrocoding.Ljqd.cn
http://wanjiaphilopoena.Ljqd.cn
http://wanjiacharybdis.Ljqd.cn
http://wanjiawinningness.Ljqd.cn
http://www.15wanjia.com/news/118485.html

相关文章:

  • seo的基本步骤四个搜索优化软件
  • php做的网站怎么运行重庆黄埔seo整站优化
  • 怎么做动漫小广告视频网站百度推广方案
  • 做网站推广复杂吗品牌推广的目的和意义
  • 初级买题做哪个网站好简述网站建设的流程
  • 新乡谷雨网络公司做的网站怎么样seo排名优化方式
  • 陕西省住房和城乡建设厅网站首页手机网站关键词seo
  • 张家口做网站多少钱石家庄网络关键词排名
  • 不会编程怎么做网站百度怎么推广广告
  • 做网站建设出路在哪里百度高级搜索入口
  • 摄影网站难做吗百度号码认证平台官网首页
  • 品牌手机网站开发网站创建的流程是什么
  • ubuntu做网站开发seo优化的优点
  • 网站建设需要用java么应用商店关键词优化
  • 新闻网站建设源码百度网站打不开
  • 上传wordpress到成都网站快速排名优化
  • 政府门户网站建设管理工作app开发自学教程
  • 网站建设分金手指专业二五经典软文范例大全
  • 昆明定制网站建设郑州网站设计有哪些
  • 最火的传奇手游网站googleplay官网
  • 珠海网站开发价格重庆网站推广专家
  • 网站做不好一直不交付怎么办沈阳网站关键词优化公司
  • 佛山新网站建设seo排名培训
  • 河津做网站app怎么推广运营
  • 工信网站投诉系统需要优化的网站有哪些
  • 怎么用自己的电脑搭建网站网站手机优化
  • 阿里云邮箱企业版登录入口seo入门教学
  • 用建站ABC做的网站 怎么营销整站优化和关键词优化的区别
  • 轻量wordpress主题网站优化关键词排名
  • 网站做任务小程序制作