标题: 关于OLED显示程序的问题 OLED_P8x16Str函数 如何识别我要显示的字符串正确显示出来 [打印本页]

作者: zhang32568    时间: 2024-4-12 15:45
标题: 关于OLED显示程序的问题 OLED_P8x16Str函数 如何识别我要显示的字符串正确显示出来
在学习OLED12864显示。其中显示字符串函数。


const unsigned char code F8X16[]=   //
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!1
  0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"2

}更多的代码没有贴上,大家知道意思。

函数

void OLED_P8x16Str(unsigned char x,unsigned char y,unsigned char ch[])
{
  unsigned char c=0,i=0,j=0;
        
  while (ch[j]!='\0')
  {   
    c =ch[j]-32;
    if(x>122){x=0;y++;}
    OLED_Set_Pos(x,y);   
          for(i=0;i<8;i++)     
            OLED_WrDat(F8X16[c*16+i]);
          OLED_Set_Pos(x,y+1);   
          for(i=0;i<8;i++)     
            OLED_WrDat(F8X16[c*16+i+8]);  
          x+=8;
          j++;
  }
}

主程序
void main()
{
OLED_P8x16Str(1,1,"123ABC")

while(1)
}

现在研究了半天,OLED_P8x16Str(1,1,"123ABC")函数 如何识别我要显示的字符串正确显示出来

作者: bingbingbom    时间: 2024-4-12 21:19
你搜索查下 ASCII 代码,字符是从32开始的,所以代码里有-32这个。
作者: bingbingbom    时间: 2024-4-12 21:25
字符代码的可以用 PCtoLCD  字模提取等这些取字模工具生成代码。也可以在设置那里了解下具体是怎么规格去生成的,每个点就是0,1的区别,点组成字就这样。
作者: jintaiyang    时间: 2024-4-12 21:35
改成这样试试
  1. while (ch[j]!='\0')
  2.   {   
  3.     c =ch[j]-32;
  4.     if(x>122){x=0;y++;}
  5.     OLED_Set_Pos(x,y);   
  6.           for(i=0;i<8;i++)     
  7.             OLED_WrDat(F8X16[c*160x20+i]);
  8.           OLED_Set_Pos(x,y+1);   
  9.           for(i=0;i<8;i++)     
  10.             OLED_WrDat(F8X16[c*16-0x20+i+8]);  
  11.           x+=8;
  12.           j++;
  13.   }
复制代码

作者: Graves    时间: 2024-4-13 09:22
while是把要显示的字符串遍历一遍,F8X16里面包含了各个字母的画点字节,按顺序排列。查表法来一个个显示出来,所以F8X16这个数组必须要排列正确,不能换位置




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1