精华内容
下载资源
问答
  • OLED显示汉字

    万次阅读 2015-07-29 23:23:52
    OLED显示汉字 ... 工具:OLED 芯片:K60,XS128等 取模软件:PCtoLCD2002完美版 ...

    OLED显示汉字


    工具:OLED

    芯片:K60,XS128等

    取模软件:PCtoLCD2002完美版



    显示汉字需要几个条件:
    汉字索引表,
    const byte F14x16_Idx[] = 
    {
    "主菜单自动化电磁组"
    };

    汉字字库,
    const byte F14x16[] = {
    0x00,0x00,0x20,0x20,0x20,0x22,0xF4,0x28,0x20,0x20,0x20,0x10,0x00,0x00,
    0x00,0x40,0x40,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x40,0x00,/*"主",0*/
    0x00,0x00,0x08,0xC8,0x48,0x3E,0x68,0xB8,0x2E,0x28,0xD8,0x08,0x04,0x00,
    0x00,0x44,0x44,0x24,0x14,0x0C,0x7F,0x04,0x0A,0x15,0x24,0x64,0x42,0x00,/*"菜",1*/
    0x00,0x00,0x00,0xF0,0x92,0x9C,0xF0,0x98,0x94,0x92,0xF0,0x00,0x00,0x00,
    0x00,0x08,0x0C,0x0B,0x0A,0x0A,0xFF,0x0A,0x0A,0x0A,0x0B,0x08,0x08,0x00,/*"单",2*/
    0x00,0x00,0x00,0xF0,0x90,0x88,0x96,0x90,0x90,0x90,0xF8,0x00,0x00,0x00,
    0x00,0x00,0x00,0x7F,0x44,0x44,0x44,0x44,0x44,0x44,0x7F,0x00,0x00,0x00,/*"自",3*/
    0x00,0x48,0x48,0xC8,0xC8,0x48,0x48,0x20,0x20,0xFE,0x20,0x20,0xE0,0x00,
    0x00,0x18,0x16,0x09,0x08,0x4C,0x38,0x10,0x0F,0x00,0x40,0x70,0x0F,0x00,/*"动",4*/
    0x00,0x80,0x40,0xF8,0x06,0x00,0x00,0xFE,0x00,0x80,0x60,0x10,0x00,0x00,
    0x00,0x01,0x00,0x7F,0x08,0x04,0x04,0x3E,0x41,0x40,0x40,0x40,0x78,0x00,/*"化",5*/
    0x00,0x00,0xF0,0x90,0x90,0x90,0xFE,0x90,0x90,0x90,0xF0,0x10,0x00,0x00,
    0x00,0x00,0x0F,0x04,0x04,0x04,0x7F,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,/*"电",6*/
    0x00,0x00,0xF4,0x88,0x84,0x10,0xD0,0x3C,0xD0,0x10,0xFC,0x12,0x90,0x00,
    0x00,0x03,0x7F,0x10,0x3F,0x66,0x3B,0x2F,0x70,0x23,0x5A,0x27,0x60,0x00,/*"磁",7*/
    0x00,0x60,0x58,0xC6,0x60,0x10,0xFC,0x44,0x44,0x44,0xFC,0x04,0x00,0x00,
    0x00,0x24,0x27,0x14,0x10,0x50,0x7F,0x44,0x44,0x44,0x7F,0x40,0x60,0x40,/*"组",8*/ 
    };


    显示汉字函数
    void LCD_P14x16Str(byte x,byte y,const byte* ch)
    {
    	byte wm=0,ii=0;
    	word adder=1; 	
    	while(ch[ii] != '\0')
    	{
      	wm = 0;
      	adder = 1;
      	while(F14x16_Idx[wm] > 127)
      	{
      		if(F14x16_Idx[wm] == ch[ii])
      		{
      			if(F14x16_Idx[wm + 1] == ch[ii + 1])
      			{
      				adder = wm * 14;
      				break;
      			}
      		}
      		wm += 2;			//函数匹配与你定义的字库匹配
      	}
      	if(x>118){x=0;y++;}
      	LCD_Set_Pos(x , y); 
      	if(adder != 1)// 显示汉字					
      	{
      		LCD_Set_Pos(x , y);
      		for(wm = 0;wm < 14;wm++)               
      		{
      			LCD_WrDat(F14x16[adder]);	
      			adder += 1;
      		}      
      		LCD_Set_Pos(x,y + 1); 
      		for(wm = 0;wm < 14;wm++)          
      		{
      			LCD_WrDat(F14x16[adder]);
      			adder += 1;
      		}   		
      	}
      	else			  //显示空白字符			
      	{
      		ii += 1;
          LCD_Set_Pos(x,y);
      		for(wm = 0;wm < 16;wm++)
      		{
      				LCD_WrDat(0);
      		}
      		LCD_Set_Pos(x,y + 1);
      		for(wm = 0;wm < 16;wm++)
      		{   		
      				LCD_WrDat(0);	
      		}
      	}
      	x += 14;
      	ii += 2;
    	}
    }


    这些汉字不一定能满足我们的要求,这时候我们就要用到取模软件【PCtoLCD2002完美版】了

    首先在选择菜单-【模式-【字符模式


    然后选择 或者菜单【选项】,只需【自定义格式】处更改为如图所示,【点阵格式】可以选择阴码阳码
    其他保持默认即可,然后点击确定

    回到主界面,选择字体,并修改字宽为14,字高为16其他保持默认即可

    输入汉字,点击【生成字模

    接下来把这些汉字加入你的字库
    首先加入索引当中:位置随便,但要与字库对应,推荐加到最后
    const byte F14x16_Idx[] = 
    {
    "主菜单无线计时调试功能采集自动化电磁组字体取模测试"
    };


    字模加入字库:
    ...
    0x00,0x00,0x0F,0x04,0x04,0x04,0x7F,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,/*"电",16*/
    0x00,0x00,0xF4,0x88,0x84,0x10,0xD0,0x3C,0xD0,0x10,0xFC,0x12,0x90,0x00,
    0x00,0x03,0x7F,0x10,0x3F,0x66,0x3B,0x2F,0x70,0x23,0x5A,0x27,0x60,0x00,/*"磁",17*/
    0x00,0x60,0x58,0xC6,0x60,0x10,0xFC,0x44,0x44,0x44,0xFC,0x04,0x00,0x00,
    0x00,0x24,0x27,0x14,0x10,0x50,0x7F,0x44,0x44,0x44,0x7F,0x40,0x60,0x40,/*"组",18*/ 
    0x00,0x20,0x38,0x50,0x50,0x50,0x52,0x54,0xD0,0x50,0x30,0x18,0x08,0x00,
    0x00,0x00,0x04,0x04,0x04,0x44,0xFF,0x05,0x04,0x04,0x04,0x02,0x02,0x00,/*"字",0*/
    0x00,0x80,0x70,0xCC,0x02,0x20,0xA0,0x60,0xFE,0xE0,0x20,0x20,0x10,0x00,
    0x00,0x00,0x00,0x7F,0x08,0x06,0x01,0x10,0x7F,0x10,0x09,0x16,0x08,0x00,/*"体",1*/
    0x00,0x04,0xFC,0x24,0x24,0xFC,0x12,0x70,0x90,0x10,0xD0,0x38,0x00,0x00,
    0x00,0x10,0x0F,0x09,0x09,0x7F,0x44,0x20,0x13,0x0E,0x11,0x20,0x20,0x00,/*"取",2*/
    0x00,0x00,0xE0,0xFE,0x98,0x28,0xE8,0xBE,0xA8,0xA8,0xBE,0xE8,0x00,0x00,
    0x0C,0x03,0x00,0x7F,0x88,0x88,0x4B,0x2A,0x1E,0x1A,0x2A,0x4F,0x48,0x00,/*"模",3*/
    0x00,0x20,0x04,0xC0,0xFC,0x04,0xF4,0x04,0xFC,0x00,0xF0,0xFC,0x00,0x00,
    0x00,0x00,0x7F,0x40,0x27,0x18,0x07,0x10,0x67,0x00,0x0F,0x7F,0x00,0x00,/*"测",4*/
    0x00,0x80,0x8C,0x90,0x20,0x20,0x20,0x20,0xA0,0xFE,0x20,0x2C,0x10,0x00,
    0x00,0x00,0x00,0x7F,0x18,0x20,0x21,0x1F,0x10,0x13,0x0C,0x30,0x70,0x00,/*"试",5*/
    };

    下面来测试一下这些汉字吧!

           LCD_P14x16Str(16,2,"字体取模测试");

    效果图:


    汉字取模软件PCtoLCD2012完美版下载


    展开全文
  • 0.96寸OLED显示汉字

    2020-06-25 23:21:41
    0.96寸OLED显示汉字显示汉字完整驱动程序,字库文件直接用取模软件按格式复制代码,显示汉字函数可以直接输入汉字程序会自动查找字库中的汉字显示。
  • 通过IIC总线与OLED屏进行通讯,让OLED显示汉字,汉字通过取字模软件转为16进制数组,添加到字符库中,显示调用;默认下载不需要积分,资源被下载后会自动增加积分,如果下载需要积分请联系我修改,谢谢
  • 压缩包里包含用micropython写的OLED显示中文的程序,里面有相应的教程文档,和取字模软件,以及源代码及其使用方法,开发环境是Openmv4,当然用python写的程序也可以在其他设备上使用如stm43F4也是可以的,esp32等也...
  • Arduino使用OLED显示汉字——For初学者

    千次阅读 多人点赞 2019-08-29 22:37:16
    有一次做项目用到了OLED显示器,需要用它来显示汉字,网上找了很多的资料,用OLED显示英文或者数字比较方便,至于显示汉字也不是很难,只是网上的资料都太零散,而且有的代码运行不了,基于此写下本文,便于初学或者...

    故事背景
    有一次做项目用到了OLED显示器,需要用它来显示汉字,网上找了很多的资料,用OLED显示英文或者数字比较方便,至于显示汉字也不是很难,只是网上的资料都太零散,而且有的代码运行不了,基于此写下本文,便于初学或者第一次用OLED的朋友少走弯路。本文不讲LCD的使用
    预先准备

    • 软件
      需要预先安装两个库,即Adafruit_GFX.h和Adafruit_SSD1306.h,要控制OLED需要这两个库,如果显示英文或者数字直接用函数可以调用,若用OLED显示汉字并不是说不好显示,而是直接编代码比较麻烦,因为(本文用到的)OLED是128*64的。若自己规划汉字是比较麻烦的,所以我们推荐使用取模器,即PCtoLCD2002。至于Arduino的IDE相信大家都有,也相信大家熟练掌握了Arduino的基础知识。下面的 网盘链接是上面的两个库和PCtoLCD2002。
      链接:https://pan.baidu.com/s/1dhCfwkeFCrzhlmdCDi2vbw
      提取码:8d7q
    • 硬件
      硬件自然需要一块OLED板子,一小块面包板(可有可无),七根公-公杜邦线,(若没有面包板需要七根公-母杜邦线),一块Arduino(型号是UNO的)。
      重点区
      OK,说了那么多废话,安装完上面的库和软件之后,我们就开始准备打印汉字吧!!
      首先是取模软件的使用,取模软件打开是这样的:
      在这里插入图片描述
      上面的是可以调节字体,字号,加粗等等,以及每一个字占的点阵大小,默认是16*16的。
      操作也是很简单的:
      在这里插入图片描述
      在图①位置处输入汉字即可,将会在取模器上看见改字,在②处点击生成字模,就会出现③处的矩阵,一般情况下,一个字用 一个数组表示,其次在④处有一个保存字模。 可以以txt的形式保存到本地。一般直接复制生成的汉字字模就好了。定义两个数组分别保存“汉”和“字”,生成如下的数组,多余的花括号自行去掉。如下:
    static const unsigned char PROGMEM str1[] =
    {0x00,0x00,0x27,0xF8,0x12,0x08,0x12,0x08,0x82,0x08,0x41,0x10,0x49,0x10,0x09,0x10,
    0x10,0xA0,0x10,0xA0,0xE0,0x40,0x20,0x40,0x20,0xA0,0x21,0x10,0x22,0x08,0x0C,0x06};/*汉*/
    static const unsigned char PROGMEM str2[] =
    {0x02,0x00,0x01,0x00,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,0x00,0x40,0x00,0x80,
    0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00};/*"字",1*/
    

    之后使用两个函数调用就好了,如下:

      //我测试的时候,有这么几个是可以显示的,至于汉字显示多的话就将字体设小。
      //21 10
      //37 10
      //53 10
      //69 10
      //85 10
      //101 10
      //60 30
      //76 30
      //92 30
    display.drawBitmap(5, 10, str1, 16, 16,1); 
    //5 10是x y的坐标,str1是第一个汉字的点列矩阵,16*16是矩阵大小,1是模式。
    display.drawBitmap(21, 10, str2, 16, 16,1); 
    display.display();    
    

    完整的代码在文章末尾。
    以上是代码的核心区 。
    其次是硬件的连接,原理图如下:
    在这里插入图片描述
    该图的OLED为4管脚,本文用的是7管脚的,一般是6管脚和7管脚,6管脚默认CS接低电平,该图用Fritzing绘制,没有找到7管脚的OLED,大致原理看实物图。
    实物图如下:
    在这里插入图片描述
    因此对应的管脚口代码是:

    #define OLED_RES  12
    #define OLED_SDA 13
    #define OLED_SCK   9
    #define OLED_DC 10
    #define OLED_CS 8
    

    最后完整代码:

    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #define OLED_RES  12
    #define OLED_SDA 13
    #define OLED_SCK   9
    #define OLED_DC 10
    #define OLED_CS 8
    Adafruit_SSD1306 display(OLED_SDA, OLED_SCK, OLED_DC, OLED_RES, OLED_CS);//定义一个display函数 类似于实例对象
    //取16X16汉字字模 逐行式 顺向高位在前
    static const unsigned char PROGMEM str1[] =
    {0x00,0x00,0x27,0xF8,0x12,0x08,0x12,0x08,0x82,0x08,0x41,0x10,0x49,0x10,0x09,0x10,
    0x10,0xA0,0x10,0xA0,0xE0,0x40,0x20,0x40,0x20,0xA0,0x21,0x10,0x22,0x08,0x0C,0x06};/*汉*/
    static const unsigned char PROGMEM str2[] =
    {0x02,0x00,0x01,0x00,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,0x00,0x40,0x00,0x80,
    0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00};/*"字",1*/
    void setup() {
      Serial.begin(9600);
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);//开始启动的语句
      display.setTextColor(WHITE);//开像素点发光
      display.clearDisplay();//清屏
    
      display.drawBitmap(5, 10, str1, 16, 16,1); 
      display.drawBitmap(21, 10, str2, 16, 16,1);
      display.display();         
    }
    void loop() 
    {
      
    }
    
    

    最后的显示实物图如下:
    在这里插入图片描述
    到此就该说再见了,内容也就这么多,有问题欢迎评论,本文仅供学习,只是提供一个思路 ,由于能力有限,文章难免有错误,欢迎在文章下面评论,一起讨论,一起学习。

    展开全文
  • 在PIC16F877A单片机上操作OLED显示字符数字和汉字
  • 1.完整源码:主函数oled.pyfrom ssd1306 import SSD1306_SPIfrom ssd1306 import SSD1306import fontimport machinedef draw_chinese(lcd,ch_str,x_axis,y_axis):offset_=0y_axis=y_axis*16#中文高度一行占8个x_axis...

    1.完整源码:

    主函数oled.py

    from ssd1306 import SSD1306_SPI

    from ssd1306 import SSD1306

    import font

    import machine

    def draw_chinese(lcd,ch_str,x_axis,y_axis):

    offset_=0

    y_axis=y_axis*16#中文高度一行占8个

    x_axis=(x_axis*16)#中文宽度占16个

    for k in ch_str:

    code = 0x00#将中文转成16进制编码

    data_code = k.encode("utf-8")

    code |= data_code[0]<<16

    code |= data_code[1]<<8

    code |= data_code[2]

    byte_data=font.byte2[code]

    for y in range(0,16):

    a_=bin(byte_data[y]).replace('0b','')

    while len(a_)<8:

    a_='0'+a_

    b_=bin(byte_data[y+16]).replace('0b','')

    while len(b_)<8:

    b_='0'+b_

    for x in range(0,8):

    lcd.pixel(x_axis+x-offset_,y+y_axis,int(a_[x]))#文字的上半部分

    lcd.pixel(x_axis+x+8-offset_,y+y_axis,int(b_[x]))#文字的下半部分

    offset_+=16

    WIDTH = const(128)

    HEIGHT = const (64)

    pdc = machine.Pin(27, machine.Pin.OUT)

    pcs = machine.Pin(26, machine.Pin.OUT)

    prst = machine.Pin(18, machine.Pin.OUT)

    spi = machine.SPI(baudrate=100000, polarity=1, phase=0, sck=machine.Pin(0), mosi=machine.Pin(2), miso=machine.Pin(4))

    spi.init(baudrate=200000) # set the baudrate

    ssd = SSD1306_SPI(WIDTH, HEIGHT, spi, pdc, prst, pcs)

    draw_chinese(ssd,'我',0,0)

    draw_chinese(ssd,'我',1,1)

    draw_chinese(ssd,'我',2,2)

    draw_chinese(ssd,'我',3,3)

    ssd.show()

    字体包font.py

    byte2={

    0xE997B9:

    [0x20,0x17,0x00,0x42,0x41,0x5F,0x41,0x41,0x4F,0x49,0x49,0x49,0x49,0x41,0x41,0x40,

    0x00,0xFC,0x04,0x04,0x04,0xF4,0x04,0x04,0xE4,0x24,0x24,0xA4,0x44,0x04,0x14,0x08],#闹

    0xe68891:

    [0x04,0x0E,0x78,0x08,0x08,0xFF,0x08,0x08,0x0A,0x0C,0x18,0x68,0x08,0x08,0x2B,0x10,

    0x40,0x50,0x48,0x48,0x40,0xFE,0x40,0x44,0x44,0x48,0x30,0x22,0x52,0x8A,0x06,0x02],#我

    0xE9929F:

    [0x10,0x10,0x3C,0x20,0x41,0xBD,0x11,0x11,0xFD,0x11,0x11,0x10,0x14,0x18,0x10,0x00,

    0x20,0x20,0x20,0x20,0xFC,0x24,0x24,0x24,0x24,0xFC,0x24,0x20,0x20,0x20,0x20,0x20],#钟

    0xE697B6:

    [0x00,0x00,0x7C,0x44,0x45,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x7C,0x44,0x00,0x00,

    0x08,0x08,0x08,0x08,0xFE,0x08,0x08,0x08,0x88,0x48,0x48,0x08,0x08,0x08,0x28,0x10]

    }

    2. esp硬件spi接线

    oled esp32

    GND GND

    VCC VCC

    D0 P0(SCK)

    D1 P2(MOSI)

    RES P18(RST)

    DC P27(DC)

    CS P26(CS)

    3. 汉字取模

    使用工具PCtoLCD2002完美版,参数设置如下图:

    L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy84MTg4MzgvMjAxOTAyLzgxODgzOC0yMDE5MDIyNjIwNDM0NzkxMi05ODM2NDc2NzcucG5n.jpg

    生成字节数组:

    0x04,0x0E,0x78,0x08,0x08,0xFF,0x08,0x08,0x0A,0x0C,0x18,0x68,0x08,0x08,0x2B,0x10,

    0x40,0x50,0x48,0x48,0x40,0xFE,0x40,0x44,0x44,0x48,0x30,0x22,0x52,0x8A,0x06,0x02

    4.显示效果

    L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy84MTg4MzgvMjAxOTAyLzgxODgzOC0yMDE5MDIyNjIwNDkyMzMzNi0xMTA0OTk5NjgzLnBuZw==.jpg

    MicroPython之TPYBoard v102开发板控制OLED显示中文

    转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 0x00前言 之前看到一篇文章是关于TPYBoardv102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文.最近 ...

    MicroPython实例之TPYBoard开发板控制OLED显示中文

    0x00 前言 之前看到一篇文章是关于TPYBoard v102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文.最近利用空余时间搞定了这个实验,特此将实验过程及源码分享出来,方便以 ...

    玩转X-CTR100 l STM32F4 l OLED显示-SSD1306无字库

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      OLED显示屏具有自发光特性,不需要背光, ...

    spi子系统之驱动SSD1306 OLED

    spi子系统之驱动SSD1306 OLED 接触Linux之前,曾以为读源码可以更快的学习软件,于是前几个博客都是一边读源码一边添加注释,甚至精读到每一行代码,实际上效果并不理想,看过之后就忘记了.主 ...

    I2C子系统之驱动SSD1306 OLED

    理解I2C设备驱动框架,主要围绕四个结构体去分析就容易了. struct i2c_algorithm:提供I2C协议的实现的操作,如:master_xfer实现数据收发的最基本方法. struct i ...

    灵感手环第一步——0&period;96寸OLED显示实验

    这算是我这个系列的第一篇博客吧.首先要解决的就是屏幕显示问题.我选择了目前新兴起的OLED显示模块. OLED(OrganicLightEmittingDiode),中文译作有机发光二极管,目前被广泛 ...

    2&period;数码相框-编码&lpar;ASCII&sol;GB2312&sol;Unicode&rpar;介绍&comma;并使LCD显示汉字字符&lpar;2&rpar;

    在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...

    Linux内核调用SPI平台级驱动&lowbar;实现OLED的显示功能

    Linux内核调用SPI驱动_实现OLED显示功能 0. 导语 进入Linux的世界,发现真的是无比的有趣,也发现搞Linux驱动从底层嵌入式搞起真的是很有益处.我们在单片机.DSP这些无操作系统的裸 ...

    使用Tslib在触摸屏上显示汉字【转】

    转自:http://www.latelee.org/embedded-linux/use-tslib-to-display-chinese-character.html 终于到了在触摸屏上显示汉字了, ...

    随机推荐

    SQLite浅析

    对于iOS工程师有一道常考的面试题,即iOS数据存储的方式 标答如下: Plist(NSArray\NSDictionary) Preference (偏好设置\NSUserDefaults) NSC ...

    无法import的原因&lpar;ImportError&colon; No module named &ast;&ast;&ast;&ast;&ast;&rpar;

    python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用. 如果想 ...

    poj 2007 Scrambled Polygon(极角排序)

    http://poj.org/problem?id=2007 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6701   A ...

    iOS 关于时间戳的一些细节

    最近遇到一个bug,在iPhone上获取当前的时间戳,没有问题,而用iPad来测试的时候,出现了时间戳不对.当时的代码 (需要精确到毫秒,所以*1000) NSTimeInterval t = [[N ...

    No&period;2小白的HTML&plus;CSS心得篇

    今天要强调的重点是分析把握好HTML标签的两个方面: 1.标签的用途(用途指的是用来干什么,有什么作用)在专业术语叫作 语义化. 举个列子:
    换行的作用 见了它就明白它的语义就是 ...

    SqlServer发送邮件,定时作业

    今天偶然研究了一下sqlserver发送邮件的功能,之前听说过可以发,但是一直没尝试过,只是用C#写后台程序的方式来发邮件. 现在又多了一种发送邮件的途径. 大致的步骤如下: 1.配置sqlserve ...

    &lbrack;SHOI2008&rsqb;循环的债务

    Description Alice.Bob和Cynthia总是为他们之间混乱的债务而烦恼,终于有一天,他们决定坐下来一起解决这个问题. 不过,鉴别钞票的真伪是一件很麻烦的事情,于是他们决定要在清还债务 ...

    Hibernate之综合问题

    n + 1问题 query.iterate()方式返回迭代查询会开始发出一条语句:查询所有记录ID语句 Hibernate: select student0_.id ascol_0_0_from t_ ...

    展开全文
  • (STM32)OLED显示汉字

    2018-05-12 10:29:10
    OLED_Init(); //初始化OLED OLED_Show_FontN(0,56,2); OLED_Show_FontN(8,56,0); OLED_Show_FontN(16,56,1); OLED_Show_FontN(24,56,7); OLED_Show(); while(1) { delay_ms(500); LED0=!LED0; } ...
  • 0x00 前言之前看到一篇文章是关于TPYBoard v102控制...0x01 实验器材TPYBoard v102 开发板 1块(某宝上可以买到,价格不贵)0.96 寸OLED显示屏(ssd1306) 1块杜邦线 若干0x02 前期准备1、首先我们先来看一下,之前...

    0x00 前言

    之前看到一篇文章是关于TPYBoard v102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文。最近利用空余时间搞定了这个实验,特此将实验过程及源码分享出来,方便以后使用。

    0x01 实验器材

    TPYBoard v102 开发板 1块(某宝上可以买到,价格不贵)

    0.96 寸OLED显示屏(ssd1306) 1块

    杜邦线 若干

    0x02 前期准备

    1、首先我们先来看一下,之前参考的OLED显示字符的文章。

    http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/v10x/oled/?highlight=oled

    文章中的源码文件都已上传到GitHub。地址:https://github.com/TPYBoard/developmentBoard/tree/master/TPYBoard-v10x-master

    找到11.学习使用OLED显示屏]里面就是源程序。我就是在font.py和ssd1306.py基础上做的开发。

    2、在font.py中增加中文字模。

    font.py中已有英文、数字和符号的字符,我们需要做中文的字模添加到font.py中。

    2.1首先下载字模提取工具。地址:http://tpyboard.com/download/tool/187.html

    解压,双击运行PCtoLCD2002.exe。

    383503-20180920163212696-1056804709.png

    2.2 顶端菜单栏,点击[选项]按下方图片设置,设置完毕后点击[确定]保存设置。

    383503-20180920163232889-1165829842.png

    2.2回到主界面,在输入框中输入“我”点击[生成字模]。

    383503-20180920163243034-1510197674.png

    取得的字模数据如下:

    383503-20180920163253713-774007519.png

    2.2将取到的字模数据添加到font.py中。

    383503-20180920163301895-1458644863.png

    绿色框中是“我”的16进制utf-8编码。

    在线工具:http://tool.lu/hexstr/

    参照以上方法,我依次添加了“我爱你祖国”这5个汉字的字模。

    byte2 = {

    0xe68891:

    [

    0x04,0x0E,0x78,0x08,0x08,0xFF,0x08,0x08,0x0A,0x0C,0x18,0x68,0x08,0x08,0x2B,0x10,

    0x40,0x50,0x48,0x48,0x40,0xFE,0x40,0x44,0x44,0x48,0x30,0x22,0x52,0x8A,0x06,0x02,

    ],#我

    0xe788b1:

    [

    0x00,0x01,0x7E,0x22,0x11,0x7F,0x42,0x82,0x7F,0x04,0x07,0x0A,0x11,0x20,0x43,0x1C,

    0x08,0xFC,0x10,0x10,0x20,0xFE,0x02,0x04,0xF8,0x00,0xF0,0x10,0x20,0xC0,0x30,0x0E,

    ],#爱

    0xe4bda0:

    [

    0x08,0x08,0x08,0x11,0x11,0x32,0x34,0x50,0x91,0x11,0x12,0x12,0x14,0x10,0x10,0x10,

    0x80,0x80,0x80,0xFE,0x02,0x04,0x20,0x20,0x28,0x24,0x24,0x22,0x22,0x20,0xA0,0x40,

    ],#你

    0xe7a596:

    [

    0x20,0x11,0x11,0xF9,0x09,0x11,0x11,0x39,0x55,0x95,0x11,0x11,0x11,0x11,0x17,0x10,

    0x00,0xF8,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0xFE,0x00

    ],#祖

    0xe59bbd:

    [

    0x00,0x7F,0x40,0x40,0x5F,0x41,0x41,0x4F,0x41,0x41,0x41,0x5F,0x40,0x40,0x7F,0x40,

    0x00,0xFC,0x04,0x04,0xF4,0x04,0x04,0xE4,0x04,0x44,0x24,0xF4,0x04,0x04,0xFC,0x04

    ],#国

    }

    1、在ssd1306.py 文件中增加了draw_chinese显示中文的方法。

    defdraw_chinese(self,ch_str,x_axis,y_axis):

    offset_=0

    y_axis=y_axis*8#中文高度一行占8个

    x_axis=127-(x_axis*16)#中文宽度占16个

    for k inch_str:

    code= 0x00#将中文转成16进制编码

    data_code = k.encode("utf-8")

    code|= data_code[0]<<16code|= data_code[1]<<8code|= data_code[2]

    byte_data=font.byte2[code]for y in range(0,16):

    a_=bin(byte_data[y]).replace('0b','')while len(a_)<8:

    a_='0'+a_

    b_=bin(byte_data[y+16]).replace('0b','')while len(b_)<8:

    b_='0'+b_for x in range(0,8):

    self.set_pixel(x_axis-x-offset_,y+y_axis,int(a_[x]))#文字的上半部分

    self.set_pixel(x_axis-x-8-offset_,y+y_axis,int(b_[x]))#文字的下半部分

    offset_+=16

    github源码地址:https://github.com/TPYBoard/developmentBoard/tree/master/TPYBoard-v10x-master/

    找到[20.学习OLED显示中文]。

    0x03 硬件连接

    本次实验使用OLED的SPI通讯方式,TPYBoard v102带有2个SPI接口,我用的SPI1。

    383503-20180920163438465-1184501365.png

    具体接线方法如下:

    0x04 效果展示

    硬件接线OK后,将源码全部拷贝到TPYBaord v102加载的磁盘中,按下RST按键复位或者使用Putty软件Ctrl+D软复位,重新运行效果如下:

    383503-20180920163501738-1902993877.jpg

    展开全文
  • oled显示中文字母

    千次阅读 2016-10-07 14:57:59
    主要介绍PCtoLCD如何进行汉字取模的说明
  • Harmony OS 设备开发学习记录(十二)-- 通过I2C点亮oled显示汉字、图片。 基于hispark wifi套件采用harmony os 2.0全量代码 一、看原理图确定硬件电路 oled原理图 二、在源码中建立demo文件 先在gitee上吧...
  • 我的OLED是1.3寸128×64点阵,驱动是SH1106 I2C接口,我用的U8G2的模块,u8G2有16×16的汉字,Chinese1,chinese2,chinese3,三个汉字字体,是unicode编码,不过我发现汉字不全,只有很少一部分,用DrewGlyph显示。...
  • 看我之前的微博,我是做了双屏的时钟,这个是左边屏,只显示日期、星期、时间、农历。农历使用离线库。放出来给喜欢的朋友玩一下。可以直接烧。 注意:引脚位置,我这个屏的引脚定义可能跟大家的不一样,如果不亮把...
  • exp8266显示中文1. oled及相关函数2. 显示文字1)获得字模2)读取像素值 1. oled及相关函数 固件:esp8266-20210202-v1.14.bin ssd1306常用函数: from ssd1306 import SSD1306_I2Cr i2c = I2C(scl=Pin(5), sda=Pin...
  • 转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 0x00前言 之前看到一篇文章是关于TPYBoardv102控制OLED屏显示的... 0x01实验器材 TPYBoardv102开发板1块 0.96寸OLED显示屏(ssd1306)1块 杜邦线若...
  • 包括必备库和转换软件
  • 0x00 前言 之前看到一篇文章是关于TPYBoard v102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏... TPYBoard v102 开发板 1块(某宝上可以买到,价格不贵) 0.96 寸OLED显示屏(ssd1306) 1块 杜邦线 若干 0x...
  • 1.main.c 2.oled.c 3.oled.h
  • 参考:...一.接线 OLED Arduino Uno ...二....2.设置好之后,输入汉字,生成字模 三.写程序 #include "U8glib.h" #include "clib/u8g.h" //接线:四针oled,Vcc-3

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,951
精华内容 780
关键字:

oled显示汉字