OpenEdv-开源电子网

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

对于OLED_showchar函数的一下疑问

[复制链接]

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2020-3-13
在线时间
56 小时
发表于 2020-3-26 14:47:42 | 显示全部楼层 |阅读模式
在学OLED的显示,遇到showchar函数不太懂,希望大佬能帮忙解释一下,谢谢!!!


//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示     
//size:选择字体 12/16/24
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++)                            这个循环的作用是依次取出12 16 24个数吗???
    {
   
  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);       在调用画点函数的时候 x y是分别对应chr和t吗???
   else OLED_DrawPoint(x,y,!mode);
   temp<<=1;
   y++;
   if((y-y0)==size)
   {
    y=y0;
    x++;
    break;                                                        这个break的作用是什么???
   }
  }   
    }         
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2019-5-22
在线时间
14 小时
发表于 2020-4-15 14:00:44 | 显示全部楼层
这个函数的大概意思是,首先,确定是什么字体,例如是12,那么总大小就是12*6个位的大小,然后转化为字节,这里很显然有些字节只用到一半,所有会有那个你说的break,子是为了更快的显示,不去进行没用到的半个字节。第一个循环是取出所有字节,第二循环是写入每一位,也就是每一个点。
回复 支持 1 反对 0

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3627
金钱
3627
注册时间
2019-8-14
在线时间
1054 小时
发表于 2020-3-26 15:12:40 | 显示全部楼层
1.调用字体的一个字符的字节数
2.一个字节的大小
3.x,y可以看到对应函数的参数说明哪里,是指x,y坐标
4退出循环
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2020-3-13
在线时间
56 小时
 楼主| 发表于 2020-3-26 15:35:49 | 显示全部楼层
本帖最后由 xuexiaiwo 于 2020-3-26 15:39 编辑
hou18 发表于 2020-3-26 15:12
1.调用字体的一个字符的字节数
2.一个字节的大小
3.x,y可以看到对应函数的参数说明哪里,是指x,y坐标

谢谢大佬!!!关于这个showchar的问题都解决了!!!谢谢!!!
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2020-3-13
在线时间
56 小时
 楼主| 发表于 2020-3-26 15:59:32 | 显示全部楼层
本帖最后由 xuexiaiwo 于 2020-3-26 16:28 编辑
xuexiaiwo 发表于 2020-3-26 15:35
谢谢大佬!!!关于这个showchar的问题都解决了!!!谢谢!!!

看了很久终于看到了!!!谢谢大佬!!
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2020-3-13
在线时间
56 小时
 楼主| 发表于 2020-3-26 16:00:24 | 显示全部楼层
hou18 发表于 2020-3-26 15:12
1.调用字体的一个字符的字节数
2.一个字节的大小
3.x,y可以看到对应函数的参数说明哪里,是指x,y坐标

还想问一下大佬,x的初值是怎么确定的呀,直接就是0吗?
回复 支持 反对

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3627
金钱
3627
注册时间
2019-8-14
在线时间
1054 小时
发表于 2020-3-26 16:38:20 | 显示全部楼层
这个看你是想要在哪里显示了,需要在0~127之内
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2020-3-13
在线时间
56 小时
 楼主| 发表于 2020-3-26 20:41:12 | 显示全部楼层
hou18 发表于 2020-3-26 16:38
这个看你是想要在哪里显示了,需要在0~127之内

之后我自己看了很久,看懂了!!谢谢大佬!!
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2020-3-13
在线时间
56 小时
 楼主| 发表于 2020-4-16 21:12:24 | 显示全部楼层
青玉谙 发表于 2020-4-15 14:00
这个函数的大概意思是,首先,确定是什么字体,例如是12,那么总大小就是12*6个位的大小,然后转化为字节, ...

大神!!懂了!!谢谢你
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-10-11
在线时间
9 小时
发表于 2020-11-2 23:36:01 | 显示全部楼层
x,y 是main 函数里面传的值
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 12:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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