OpenEdv-开源电子网

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

求助,在做OLED显示实验时,showchar函数帮忙解释下,谢谢了

[复制链接]

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-9-6
在线时间
30 小时
发表于 2016-9-22 17:04:56 | 显示全部楼层 |阅读模式
//在指定位置显示一个字符,包括部分字符
//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);                //得到字体一个字符对应点阵集所占的字节数{这句问题最大,size是指字体大小,一个字符所占字符数,以2412字体为例,不就是一个2412字体占36个字节吗?那按照这上面说的size 24/8=3,是三个字节?)
                                                                                  如果说2412的字体大小意思是指24X12bits,那么看下show_string函数中的size(也是指24吗?),main函数里OLED_ShowString(0,0,"ALIENTEK",24); 这里面的24是指的什么?}
        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;
                        }
                }           
    }         
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-9 15:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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