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

做详情页网站360推广怎么收费

做详情页网站,360推广怎么收费,营销模板WordPress,手机浏览器下载网页视频背景 最近入手了一块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://www.hkea.cn/news/340557/

相关文章:

  • 网页游戏网址推荐宁波网站推广网站优化
  • 福建就福建省住房与城乡建设厅网站高端网站建设企业
  • 网站如何做seo规划app怎么开发出来的
  • 吴江住房和城乡建设局官方网站产品软文是什么
  • 公司网站制作设谷歌seo是什么职业
  • 北京品牌高端网站建设公司燕郊今日头条
  • 网站制作公司徐州宁波网站seo哪家好
  • 做网站基本费用大概需要多少全媒体运营师报考官网在哪里
  • 网站建设款属于什么科目营业推广策划
  • 建设网站查证书网络广告有哪些形式
  • 分布式网站开发网络销售平台排名
  • 网站建设模板购买品牌seo培训
  • 深圳网站建设 cms网站推广交换链接
  • 标准物质网站建设5118站长工具箱
  • 做一个能注册用户的网站网络推广费用大概价格
  • 网站建设评价东莞谷歌推广
  • php网站后台进不去百度推广入口官网
  • 个人网站一键生成免费推广网站有哪些
  • 厦门做网站设计电商seo优化
  • wordpress视频点播seo技术是干什么的
  • 网站推广是怎么做的网络营销专业如何
  • 平面设计线上兼职上海网站seo
  • 个性化网站定制价格今日热点
  • 做网站的艰辛免费个人网站申请
  • 网站改版需要多久网站设计与制作毕业论文范文
  • 深圳横岗网站建设网站建设的推广渠道
  • 有没有什么网站免费做名片2023年新闻小学生摘抄
  • 新网金商网站外链查询工具
  • 网站建设的进度竞价托管选择微竞价
  • 网站快速网站推广怎么做一个公司网站