你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

oled显示怎么设置32大小字体,OLED_showChar函数里的16,24怎么看

[复制链接]
p13692166934 提问时间:2019-3-26 14:36 /
本帖最后由 p13692166934 于 2019-3-28 19:58 编辑

这个是我网上找的代码,只有8,16,24字体,发现24还是太小,想自己写一个32的,但是看不懂代码的含义,看起来像是取字模复制过来显示的,但是不清楚显示原理,我都是直接复制粘贴然后看注释套用,自己看就坑了
/*******************************************************************************
* 函数名:OLED_showChar
* 功能描述:在指定位置显示一个字符,包括部分字符
* 参数说明:  
*   在指定位置显示一个字符,包括部分字符
*   x:0~127
*   y:0~63
*   mode:0,反白显示;1,正常显示     
*   size:选择字体 24/16/12
* 返回值说明:none
* 修改记录:
*******************************************************************************/
void OLED_showChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size)
{      
  uint8_t c=0,i=0;
  c=chr-' ';//得到偏移后的值   
  if(x>MAX_COLUMNC-1)
  {
    x=0;
    y=y+2;  //这个要优化,根据字体的不同来换行
  }
  if(Char_Size == 24)
  {
    OLED_setPos(x,y);
    for(i=0;i<16;i++)
      OLED_writeByte(F16X24[c*48+i],OLED_DATA);
    OLED_setPos(x,y+1);
    for(i=0;i<16;i++)
      OLED_writeByte(F16X24[c*48+i+16],OLED_DATA);
  OLED_setPos(x,y+2);
    for(i=0;i<16;i++)
      OLED_writeByte(F16X24[c*48+i+16*2],OLED_DATA);
  }
  else if(Char_Size ==16)
  {
    OLED_setPos(x,y);
    for(i=0;i<8;i++)
      OLED_writeByte(F8X16[c*16+i],OLED_DATA); //一个字符用16个字节来控制
    OLED_setPos(x,y+1); //y+1 表示换行,
    for(i=0;i<8;i++)
      OLED_writeByte(F8X16[c*16+i+8],OLED_DATA);
  }

  else
  {
    OLED_setPos(x+1,y);
    for(i=0;i<6;i++)
      OLED_writeByte(F6x8[c],OLED_DATA);
  }
}


收藏 评论3 发布时间:2019-3-26 14:36

举报

3个回答
一代睡神的崛起 回答时间:2019-3-26 15:52:58
很好写啊,一个汉字两个字节为8的2倍,所以当==16的时候设置坐标y(上部)y+1(下部)分两块,为24的时候为8的三倍分3块,当然为32的时候就是8的4倍,依次修改函数偏移量就能打出你想要大小的字体,同时要注意屏的尺寸,以免不能完全显示。望采纳

评分

参与人数 2ST金币 +5 蝴蝶豆 +2 收起 理由
STMCU + 2
p13692166934 + 5 虽然不能解决,但提供了一个思路.

查看全部评分

p13692166934 回答时间:2019-3-27 08:44:48
一代睡神的崛起 发表于 2019-3-26 15:52
很好写啊,一个汉字两个字节为8的2倍,所以当==16的时候设置坐标y(上部)y+1(下部)分两块,为24的时候为8 ...

偏移量是什么,比如F16X24[c*48+i+16*2]代表的是什么意思

点评

这是根据你打点的阵列排成的数据取样到数组,这得根据你手册上的显示说明进行参考  发表于 2019-3-27 11:00

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版