OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1961|回复: 3

战舰V3 OLED 显示字符串的地址偏移问题

[复制链接]

41

主题

103

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2018-1-18
在线时间
23 小时
发表于 2018-9-5 19:42:14 | 显示全部楼层 |阅读模式
2金钱
在显示"ALIENTEK"时,关于地址的偏移我不太明白,在偏移的过程中为什么药减去空格的ASCII值????

chr=chr-' ';//得到偏移后的值

void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode)
{            
u8 temp,t,t1;
u8 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2);  //得到字体一个字符对应点阵集所占的字节数
chr=chr-' ';//得到偏移后的值   
    for(t=0;t<csize;t++)
    {   
  if(size==12)temp=asc2_1206[chr][t];    //调用1206字体
  else if(size==16)temp=asc2_1608[chr][t]; //调用1608字体
  else if(size==24)temp=asc2_2412[chr][t]; //调用2412字体
  else return;        //没有的字库
        for(t1=0;t1<8;t1++)
  {
   if(temp&0x80)OLED_DrawPoint(x,y,mode);
   else OLED_DrawPoint(x,y,!mode);
   temp<<=1;
   y++;
   if((y-y0)==size)
   {
    y=y0;
    x++;
    break;
   }
  }   
    }         
}


最佳答案

查看完整内容[请看2#楼]

ASCII字库是从空格开始取模,所以-' '就是对应字符的字库
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4522
金钱
4522
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-9-5 19:42:15 | 显示全部楼层
ASCII字库是从空格开始取模,所以-' '就是对应字符的字库
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2018-9-5 22:04:09 | 显示全部楼层
楼上正解,可以看看oledfont.h
回复

使用道具 举报

41

主题

103

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2018-1-18
在线时间
23 小时
 楼主| 发表于 2018-9-5 23:51:16 | 显示全部楼层
谢谢你!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 10:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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