展开全部

# -*- code: utf-8 -*-

# 在 micropython 中运行, 注意在运行目录下有 hzk12/16

# '啊' 是汉字区第1个汉字,62616964757a686964616fe59b9ee7ad9431333431353932对应数据为 ?不对?

# 0x00, 0x00, 0x0E, 0xFC, 0xEA, 0x08, 0xAA, 0x08,

# 0xAA, 0xE8, 0xAA, 0xA8, 0xAC, 0xA8, 0xAA, 0xA8,

# 0xAA, 0xA8, 0xAA, 0xA8, 0xEA, 0xE8, 0xAA, 0xA8,

# 0x0C, 0x08, 0x08, 0x08, 0x08, 0x28, 0x08, 0x10

# hzk16 试验: '一','我'正确, '啊' 不对?

# hzk12 字库的位长度是16*12

# seek位置 '一': 111168, '五': 103152, '我':102196

'''

int(x [,base ]) 将x转换为一个整数

long(x [,base ]) 将x转换为一个长整数

float(x ) 将x转换到一个浮点数

complex(real [,imag ]) 创建一个复数

str(x ) 将对象 x 转换为字符串

repr(x ) 将对象 x 转换为表达式字符串

eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s ) 将序列 s 转换为一个元组

list(s ) 将序列 s 转换为一个列表

chr(x ) 将一个整数转换为一个字符

unichr(x ) 将一个整数转换为Unicode字符

ord(x ) 将一个字符转换为它的整数值

hex(x ) 将一个整数转换为一个十六进制字符串

oct(x ) 将一个整数转换为一个八进制字符串

bytearray(x) 列表转为数组

'''

from machine import Pin, I2C

import framebuf

import ssd1306

i2c = I2C(sda=Pin(5), scl=Pin(4))

o = ssd1306.SSD1306_I2C(128,64,i2c)

def drawhz( hzs, xp, yp ):

for x in range( len(hzs)//2 ):

c = ((hzs[x*2] - 0xA1)* 94 + (hzs[x*2+1] - 0xA1)) * 24 #gb2312 转成 区位号

f = open( 'uc_hzk12', 'rb' )

f.seek( c )

hz = bytearray( f.read(24) )

f.close()

# 创建 hzk12:16x12 or hzk16:16x16 大小帧缓存区储存图片帧,水平扫描

fb1 = framebuf.FrameBuffer(hz, 16, 12, framebuf.MONO_HLSB)

o.blit( fb1, xp + x*12, yp ) # 将fb1帧缓存送至oled显示,起始位(38,16)

xp += 1

#在 repl 中, 粘贴的中文件变码了, 装载文件形式才正常

def drawhz2(hzs, xp, yp):

for x in range(len(hzs)):

f = open('uni2gb', 'rb')

f.seek( (ord(hzs[x])-0x4e00)*2 )

gb23 = bytearray(f.read(2))

f.close()

c = ((gb23[0] - 0xA1) * 94 + (gb23[1] - 0xA1)) * \

24 # gb2312 转成 区位号

f = open('uc_hzk12', 'rb')

f.seek(c)

hz = bytearray(f.read(24))

f.close()

# 创建 hzk12:16x12 or hzk16:16x16 大小帧缓存区储存图片帧,水平扫描

fb1 = framebuf.FrameBuffer(hz, 16, 12, framebuf.MONO_HLSB)

o.blit(fb1, xp + x*12, yp) # 将fb1帧缓存送至oled显示,起始位(38,16)

xp += 1

o.fill(0)

# uPY没法实现unicode 转 gb2312, 要借助cpython 转化成 gb2312

#现在可用 文件查表法 uni2gb (unicode-0x4e00)转gb2312码

hzs = ( 206,210, 185,253, 193,249, 210,187, 189,218 ) #每两字节表示一个汉字

drawhz2( '\u98de\u96ea\u8fde\u5929', 0, 0 )

drawhz2( '\u98de\u96ea\u8fde\u5929\u5c04\u767d\u9e7f', 0, 13 ) #飞雪连天

drawhz( hzs, 0, 26 )

drawhz( hzs, 16, 39)

drawhz( hzs, 16, 52 )

o.show()

micropython oled中文_micropython中怎么将gb2312编码的字节流变成中文相关推荐

  1. mysql 替换非中文_mysql中的正则操作 匹配手机号,匹配中文,替换

    mysql中的正则操作 匹配手机号,匹配中文,替换 正则匹配hy_user表内tel字段的电话号码: SELECT * FROM hy_user WHERE tel REGEXP "[1][ ...

  2. .net core中不支持GB2312编码的问题

    今天在用core实现读取文件内容时出现了中文乱码的问题,特此记录下. 代码如下: static void Main(string[] args){string path = "F:\\1.t ...

  3. 网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法

    现在blog程序一般都是utf-8编码的,要在网站里加入其它的程序的话,如果不是utf-8而是gb2312的话,在页面转换的时候很容易出现打开的页面时乱码,经过查找资料和测试,总结出现在最好的一个方法 ...

  4. java图片片识别中文_Java中使用tess4J进行图片文字识别(支持中文)

    Java 版本:建议JDK1.8 使用的软件是tesseractocr3.02,3以后的版本才支持中文, 这个软件需要安装在本地电脑中,安装的过程中全部都按照默认进行安装(以便于Java直接调用) 代 ...

  5. java 异常 中文_Java中所有的运行时异常,带中文解释

    展开全部 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:Negat ...

  6. [转]vim 如何编辑 GB2312 编码的文件?

    在 Linux 系统下, vim 如何编辑 GB2312 编码的文件? 系统环境: LC_ALL=zh_CN.UTF-8 修改.vimrc文件,让其支持 gb2312就行 "设定文件编码类型 ...

  7. 关于gb2312编码的xml解析

    在ios项目中遇到这样一个问题,需要读取远程的xml文件,进行解析,但是目标xml是gb2312编码的,用System.Text.Encoding.GetEncoding("gb2312&q ...

  8. micropython oled中文_micropython esp8266+ssd1306(OLED) 显示中文(示例)

    1.Adafruit_SSD1306 连接示例: 库使用示例: >>> from machine import Pin, I2C >>> i2c = I2C(scl ...

  9. esp32使用MicroPython驱动oled屏显示中文和英文

    文章目录 esp32使用MicroPython驱动oled屏显示中文和英文 介绍 安装 特点 开源 硬件连接 API 示例 显示英文字符 显示汉字 参考链接 esp32使用MicroPython驱动o ...

最新文章

  1. 数字信号处理学习笔记(三)|时域离散系统的网络结构
  2. Alcatraz插件安装问题
  3. ReSharper 配置及用法(ZHUANG)
  4. 游戏中的AI及实用算法逻辑
  5. 华为手机如何升级鸿蒙系统_华为官方正式公告!鸿蒙手机系统下周发布:普通花粉何时能升级?...
  6. EasyUI,二级页面内容的操作
  7. python复制查题_python面试题(复制的)
  8. 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。...
  9. [Swift]LeetCode862. 和至少为 K 的最短子数组 | Shortest Subarray with Sum at Least K
  10. 编译的警告:隐式声明与内建函数 ‘malloc’ 不兼容
  11. Web服务器用户权限设置,Windows系统下WEB服务器权限的设置详解(四)
  12. linux文件编程 --- fflush函数
  13. 百度 android 笔试题库,百度科目一考试题库
  14. MATLAB下载支持包时出现问题
  15. 视频] 川版<唐伯虎点秋香>片段,
  16. 直扩 单音干扰抑制 matlab,单频干扰在直扩系统中的误码性能分析
  17. java冰雹数10_生成的新的数字再执行同样的动作, 循环往复.
  18. 符号对象 符号表达式
  19. 英语口语129之每日十句口语
  20. 大数据编程专业书籍推荐

热门文章

  1. [物理学与PDEs]第1章第6节 电磁场的标势与矢势 6.3 例 --- 电偶极辐射
  2. 批量下载baidu音乐主页的歌曲
  3. javascript 将table导出 Excel ,可跨行跨列
  4. Android 友盟推送开发
  5. Activity嵌套fragment大全,activity加载单个fragment,TabLayout+ViewPager实现多个fragment滑动效果
  6. WIN2003 X64 系统上安装sql server 2000 的步骤
  7. springMVC 后端代码 如何用 @requestParam() 接收前台传过来的数组
  8. IDEA中如何新建一个带有-P目录的项目
  9. 【软件开发底层知识修炼】二十三 ABI-应用程序二进制接口三之深入理解函数栈帧的形成与摧毁
  10. JavaScript HTML DOM元素节点常用操作接口