yCat 发表于 2015-8-28 10:23:25

【转载】在GoKit上加个OLED显示屏

帖子链接:http://bbs.elecfans.com/jishu_498396_1_1.html
帖子作者:czhsqqc


继上次发完开箱帖后有段时间了,看了下大家的试用帖,好像没有介绍关于GoKit上预留的OLED口的帖子,所以我来发下把
http://bbs.elecfans.com/data/attachment/forum/201507/11/115955ie91tqe7gglhd6e1.jpg.thumb.jpg
GoKit的微信宠物屋源码是有提供OLED的库的,可以直接调用,但如果想要显示中文,就需要看下它的例程,好好学习下了,了解它显示的流程。
首先,给大家提供一个字模提取软件。 http://bbs.elecfans.com/static/image/filetype/zip.gif PCtoLCD2002.zip (886.17 KB, 下载次数: 0)
http://bbs.elecfans.com/data/attachment/forum/201507/11/115530zw9pik4lp9gr4934.jpg.thumb.jpg


接下来给大家看看显示效果 http://bbs.elecfans.com/data/attachment/forum/201507/11/120221sjopozoossopsvd7.jpg.thumb.jpg

实现步骤:
首先把中文字库生成
取模软件先设置下
http://bbs.elecfans.com/data/attachment/forum/201507/11/124112gd2880j80j2xjuqd.jpg.thumb.jpg


然后就可以在输入框里输入中文,生成数据了。


接下来就是写显示中文的函数,以下代码供参考。
[*]void OLED_ShowChinese(uint8_t X, uint8_t Y, uint8_t P)
[*]{
[*]uint8_t Temp, t, t1, Temp1;
[*]      uint8_t y0 = Y;
[*]      uint8_t x0 = X;
[*]
[*]         for(t = 0; t < 16; t ++)
[*]    {
[*]                        Temp = OLED_Chinese;
[*]                        for(t1 = 0; t1 < 8; t1 ++)
[*]                        {
[*]                              if(Temp & 0x80)
[*]                                        OLED_DrawPoint(X, Y, 1);
[*]                              else
[*]                                        OLED_DrawPoint(X, Y, 0);
[*]                                        Temp <<= 1;
[*]                                        Y ++;
[*]                                        if((Y - y0) == 8)
[*]                                        {
[*]                                                Y = y0;
[*]                                                X ++;
[*]                                                break;
[*]                                        }
[*]                        }
[*]                }
[*]                Y+=8;
[*]                y0=Y;
[*]                X=x0;
[*]                for(t = 0; t < 16; t ++)
[*]    {
[*]                        Temp1 = OLED_Chinese;
[*]                        for(t1 = 0; t1 < 8; t1 ++)
[*]                        {
[*]                              if(Temp1 & 0x80)
[*]                                        OLED_DrawPoint(X, Y, 1);
[*]                              else
[*]                                        OLED_DrawPoint(X, Y, 0);
[*]                                        Temp1 <<= 1;
[*]                                        Y ++;
[*]                                        if((Y - y0) == 8)
[*]                                        {
[*]                                                Y = y0;
[*]                                                X ++;
[*]                                                break;
[*]                                        }
[*]                        }
[*]                }
[*]}

复制代码


在需要**的地方**下函数。
最后在需要显示中文的地方调用就ok了。

智能小鸟 发表于 2016-3-28 11:14:44

谢谢,已经移植成功:):):)

青春手中流逝 发表于 2016-4-13 17:03:42

移植成功,3Q,嘻嘻。:)
页: [1]
查看完整版本: 【转载】在GoKit上加个OLED显示屏