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

2019-07-20 19:52发布

//在指定位置显示一个字符,包括部分字符
//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;
                        }
                }           
    }         
}

0条回答

一周热门 更多>