| 
在线时间0 小时
UID3696199
注册时间2021-1-5
NXP金币0 
 该用户从未签到 新手上路 
 
 
	积分7 
最后登录2021-1-9 | 
 
 发表于 2021-1-9 13:27:49
|
显示全部楼层 
| 本帖最后由 damaha6 于 2021-1-9 13:31 编辑 
 用的STM32,感觉中间应答延时过长,屏幕显示刷新较慢,注释后无影响。且貌似后面显示char、string等类型的函数,似乎没有调用OLED_Refresh_Gram()这一函数,导致显示不出来,一度以为通讯出了问题。
 复制代码//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示                                 
//size:选择字体 16/12 
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;
                        }
                }           
    }
 | 
 |