温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MicroPython怎么控制OLED显示中文

发布时间:2022-01-13 11:11:42 来源:亿速云 阅读:220 作者:iii 栏目:互联网科技

这篇文章主要讲解了“MicroPython怎么控制OLED显示中文”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MicroPython怎么控制OLED显示中文”吧!

    0x01 实验器材

    TPYBoard v102 开发板 1块(某宝上可以买到,价格不贵)
    0.96 寸OLED显示屏(ssd1306) 1块
    杜邦线 若干

    0x02 前期准备

    1、在font.py和ssd1306.py基础上做的开发。

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

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

    2.1首先下载字模提取工具。

    解压,双击运行PCtoLCD2002.exe。

MicroPython怎么控制OLED显示中文
    2.2 顶端菜单栏,点击[选项]按下方图片设置,设置完毕后点击[确定]保存设置。

MicroPython怎么控制OLED显示中文
    2.2回到主界面,在输入框中输入“我”点击[生成字模]。

MicroPython怎么控制OLED显示中文
    取得的字模数据如下:

MicroPython怎么控制OLED显示中文
    2.2将取到的字模数据添加到font.py中。

MicroPython怎么控制OLED显示中文
    绿色框中是“我”的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显示中文的方法。

  def draw_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 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):
                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。

MicroPython怎么控制OLED显示中文
    具体接线方法如下:

    0x04 效果展示

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

MicroPython怎么控制OLED显示中文

感谢各位的阅读,以上就是“MicroPython怎么控制OLED显示中文”的内容了,经过本文的学习后,相信大家对MicroPython怎么控制OLED显示中文这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI