stm32,在电脑上输入汉字,通过can口接受并在OLED上显示。。帮我分析下该怎么做,主要是汉字字库不会使用

stm32,在电脑上输入汉字,通过can口接受并在OLED上显示。。帮我分析下该怎么做,主要是汉字字库不会使用,第1张

电脑上输入的中文编码一般使用GB2312或GBK编码,发送时发汉字的编码至单片机就可以,汉字库可以存储在内部flash或者外部flash,如外部SPI的flash比较便宜,字库存储时直接从需要存储的首地址连续存储即可,该地址可以记为flash的偏移地址,汉字字库的数据存放地址通过汉字的编码算出,具体算法可参考http://wenku.baidu.com/view/a4b24941336c1eb91a375dc0.html,算出来的地址为字在字库中的偏移地址。

则最后要访问的地址就是:flash偏移地址+字库中偏移地址

读取的数据长度与点阵大小有关,与16*16点阵字库的数据为32字节。

将读取出来的数据直接按画点的方法画至OLED上即可,但需要注意字库的存储方向和屏幕的显示方向。

目前Arduino平台上使用最广泛的OLED库: U8G2

github地址: https://github.com/olikraus/u8g2/

设置和参考手册: https://github.com/olikraus/u8g2/wiki

U8g2:单色显示器库,版本2

U8g2是用于嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,包括以下控制器:SSD1305,SSD1306,SSD1309,SSD1322,SSD1325,SSD1327,SSD1329,SSD1606,SSD1607,SH1106,SH1107,SH1108,SH1122,T6963,RA8835,LC7981,PCD8544,PCF8812,HX12 ,UC1601,UC1604,UC1608,UC1610,UC1611,UC1701,ST7565,ST7567,ST7588,ST75256,NT7534,IST3020,ST7920,LD7032,KS0108,SED1520,SBN1661,IL3820,MAX7219(完整列表请参见 此处 )。

为什么要运用U8g2库?

支持单片机平台:

再platformIO.ini中配置库

方法可以分为四大类:

初始化显示器, 清屏, 唤醒屏幕

只是初始化显示器, 并不清屏, 也不唤醒屏幕

开启UTF-8后,我们可以使用其UTF-8字库

如果支持绘制颜色(也就是不是单色显示器),那么由setDrawColor设置;

例: 画圆动画 (4帧

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11716723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存