野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11344|回复: 5

OLED做12*24的ASCII

[复制链接]
发表于 2016-12-26 09:56:18 | 显示全部楼层 |阅读模式
想把字符改大点,可是总是出现乱码,有朋友做过吗、??求解惑。
  1. /**
  2.   * @brief  OLED_ShowStr,显示codetab.h中的ASCII字符,有6*8和8*16可选择
  3.   * @param  x,y : 起始点坐标(x:0~127, y:0~7);
  4.         *                                        ch[] :- 要显示的字符串;
  5.         *                                        TextSize : 字符大小(1:6*8 ; 2:8*16)
  6.         * @retval 无
  7.   */
  8. void OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize)
  9. {
  10.         unsigned char c = 0,i = 0,j = 0;
  11.         switch(TextSize)
  12.         {
  13.                 case 1:
  14.                 {
  15.                         while(ch[j] != '\0')
  16.                         {
  17.                                 c = ch[j] - 32;
  18.                                 if(x > 126)
  19.                                 {
  20.                                         x = 0;
  21.                                         y++;
  22.                                 }
  23.                                 OLED_SetPos(x,y);
  24.                                 for(i=0;i<6;i++)
  25.                                         WriteDat(F6x8[c][i]);
  26.                                 x += 6;
  27.                                 j++;
  28.                         }
  29.                 }break;
  30.                 case 2:
  31.                 {
  32.                         while(ch[j] != '\0')
  33.                         {
  34.                                 c = ch[j] - 32;
  35.                                 if(x > 126)
  36.                                 {
  37.                                         x = 0;
  38.                                         y++;
  39.                                 }
  40.                                 OLED_SetPos(x,y);
  41.                                 for(i=0;i<8;i++)
  42.                                         WriteDat(F8X16[c*16+i]);
  43.                                 OLED_SetPos(x,y+1);
  44.                                 for(i=0;i<8;i++)
  45.                                         WriteDat(F8X16[c*16+i+8]);
  46.                                 x += 8;
  47.                                 j++;
  48.                         }
  49.                 }break;
  50.                 /*·····································修改显示12*24部分···········································*/
  51.                 case 3:
  52.                 {
  53.                         while(ch[j] != '\0')
  54.                         {
  55.                                 c = ch[j] - 48;
  56.                                 if(x > 120)
  57.                                 {
  58.                                         x = 0;
  59.                                         y++;
  60.                                 }
  61.                                 OLED_SetPos(x,y);
  62.                                 for(i=0;i<12;i++)
  63.                                         WriteDat(F12X24[c*24+i]);
  64.                                 OLED_SetPos(x,y+1);
  65.                                 for(i=0;i<12;i++)
  66.                                         WriteDat(F12X24[c*24+i+12]);
  67.                                 OLED_SetPos(x,y+2);
  68.                                 for(i=0;i<12;i++)
  69.                                         WriteDat(F12X24[c*24+i+24]);
  70.                                 x += 12;
  71.                                 j++;
  72.                         }
  73.                 }break;
  74.         }
  75. }
复制代码


回复

使用道具 举报

发表于 2016-12-26 10:03:07 | 显示全部楼层
要检查字库是否匹配了
回复 支持 反对

使用道具 举报

发表于 2016-12-26 10:04:50 | 显示全部楼层
帮顶                     
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-26 10:53:08 | 显示全部楼层
flyleaf 发表于 2016-12-26 10:03
要检查字库是否匹配了

字库没错,就是显示时候几个字母只有一半一半的出现·········
回复 支持 反对

使用道具 举报

发表于 2016-12-26 13:50:17 | 显示全部楼层
qq4222 发表于 2016-12-26 10:53
字库没错,就是显示时候几个字母只有一半一半的出现·········

那就是调整一下显示字符的驱动函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-26 18:38:10 | 显示全部楼层
flyleaf 发表于 2016-12-26 13:50
那就是调整一下显示字符的驱动函数

问题解决了,字节大小没数对·······
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-19 06:38 , Processed in 0.060470 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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