收藏官网首页
查看: 13185|回复: 2

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

跳转到指定楼层
楼主
发表于 2015-8-28 10:23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
帖子链接:http://bbs.elecfans.com/jishu_498396_1_1.html
帖子作者:czhsqqc


继上次发完开箱帖后有段时间了,看了下大家的试用帖,好像没有介绍关于gokit上预留的OLED口的帖子,所以我来发下把


GoKit的微信宠物屋源码是有提供OLED的库的,可以直接调用,但如果想要显示中文,就需要看下它的例程,好好学习下了,了解它显示的流程。
首先,给大家提供一个字模提取软件。 PCtoLCD2002.zip (886.17 KB, 下载次数: 0)



接下来给大家看看显示效果

实现步骤:
首先把中文字库生成
取模软件先设置下



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


接下来就是写显示中文的函数,以下代码供参考。
  • 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[2*P][t];
  •                         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[2*P+1][t];
  •                         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;
  •                                         }
  •                         }
  •                 }
  • }

[color=rgb(51, 102, 153) !important]复制代码



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

3

主题

36

帖子

751

积分

高级会员

Rank: 4

积分
751
沙发
发表于 2016-3-28 11:14:44 | 只看该作者
谢谢,已经移植成功

1

主题

12

帖子

118

积分

注册会员

Rank: 2

积分
118
板凳
发表于 2016-4-13 17:03:42 | 只看该作者
移植成功,3Q,嘻嘻。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表