ssd1306可以显示8*8点阵的英文和数字,但这不是ssd1306这个显示屏自带的功能,是继承了MicroPython的内置库‘framebuf’,framebuf的text方法可以直接显示ASCII码支持的符号。
想要显示16*16点阵的汉字,16*8的英文数字,就只能自建字库,或者使用标准字库,ASC16字库是个不错的选择。
ASC16的文件结构
ASC16是二进制文件,每16个字节表示一个16*8的字符点阵,按ASCII码顺序存放。
获取点阵
file = open('ASC16', 'rb')
file.seek(ord('A') * 16)
font_code = file.read(16)
屏幕输出
import framebuf
fb = framebuf.FrameBuffer(bytearray(font_code), 8, 16, framebuf.MONO_HLSB)
#省略ssd136初始化
display.blit(fb, 0, 0)
display.show()
因为ASC16的字库是水平排列的,所以用framebuf.MONO_HLSB