机智云GoKit论坛
直播中

陈智豪

12年用户 19经验值
擅长:控制/MCU
私信 关注
[GoKit作品]

【GoKit试用体验】在GoKit上加个OLED显示屏

本帖最后由 czhsqqc 于 2015-7-11 13:22 编辑

继上次发完开箱帖后有段时间了,看了下大家的试用帖,好像没有介绍关于GoKit上预留的OLED口的帖子,所以我来发下把
IMG_20150711_113449_1436585719069.jpg
GoKit的微信宠物屋源码是有提供OLED的库的,可以直接调用,但如果想要显示中文,就需要看下它的例程,好好学习下了,了解它显示的流程。
首先,给大家提供一个字模提取软件。
PCtoLCD2002.zip (886.17 KB)
(下载次数: 22, 2015-7-11 11:53 上传)

360截图20150711115339722.jpg


接下来给大家看看显示效果 IMG_20150711_113305_1436587237058.jpg

实现步骤:
首先把中文字库生成
取模软件先设置下
360截图20150711123559759.jpg


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


接下来就是写显示中文的函数,以下代码供参考。
  1. void OLED_ShowChinese(uint8_t X, uint8_t Y, uint8_t P)
  2. {
  3. uint8_t Temp, t, t1, Temp1;
  4.         uint8_t y0 = Y;
  5.         uint8_t x0 = X;
  6.        
  7.          for(t = 0; t < 16; t ++)
  8.     {
  9.                         Temp = OLED_Chinese[2*P][t];
  10.                         for(t1 = 0; t1 < 8; t1 ++)
  11.                         {
  12.                                 if(Temp & 0x80)
  13.                                         OLED_DrawPoint(X, Y, 1);
  14.                                 else
  15.                                         OLED_DrawPoint(X, Y, 0);
  16.                                         Temp <<= 1;
  17.                                         Y ++;
  18.                                         if((Y - y0) == 8)
  19.                                         {
  20.                                                 Y = y0;
  21.                                                 X ++;
  22.                                                 break;
  23.                                         }
  24.                         }
  25.                 }
  26.                 Y+=8;
  27.                 y0=Y;
  28.                 X=x0;
  29.                 for(t = 0; t < 16; t ++)
  30.     {
  31.                         Temp1 = OLED_Chinese[2*P+1][t];
  32.                         for(t1 = 0; t1 < 8; t1 ++)
  33.                         {
  34.                                 if(Temp1 & 0x80)
  35.                                         OLED_DrawPoint(X, Y, 1);
  36.                                 else
  37.                                         OLED_DrawPoint(X, Y, 0);
  38.                                         Temp1 <<= 1;
  39.                                         Y ++;
  40.                                         if((Y - y0) == 8)
  41.                                         {
  42.                                                 Y = y0;
  43.                                                 X ++;
  44.                                                 break;
  45.                                         }
  46.                         }
  47.                 }
  48. }


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

回帖(3)

李超

2015-10-24 15:56:42
除了电源和地线,其他是接在PD8-PD11,PD13吗?为什么我的没调试对呢
举报

陈智豪

2015-12-3 10:17:28
引用: lchyx. 发表于 2015-10-24 15:56
除了电源和地线,其他是接在PD8-PD11,PD13吗?为什么我的没调试对呢

是的,问题解决了吗?调试后出现什么问题?不亮还是显示不正确?
举报

henhao

2016-10-28 20:30:36
能共享源码吗?????????
举报

更多回帖

发帖
×
20
完善资料,
赚取积分