个对嵌入式实验之oled屏实验的难点解读

        以0.96寸128*96 oled屏,

        应为横向有96行,将其分成8份,则每份是8行,此时,有128列,

        以第一列为例,此时第一列就可以是12个字节组成

 

 OLED屏就是这样分屏,来操作。 这就是OLED_GRAM[128][8]的来历

     先对 OLED_GRAM[128][8]操作玩后 ,再将 OLED_GRAM[128][8]中数据写入OLED中

OLED_ShowString(0,0,"ALIENTEK",24);  

void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size)
{    
    while((*p<='~')&&(*p>=' '))//判断是不是非法字符!
    {       
        if(x>(128-(size/2))){x=0;y+=size;}
        if(y>(64-size)){y=x=0;OLED_Clear();}
        OLED_ShowChar(x,y,*p,size,1);     
        x+=size/2;
        p++;
    }  
    
}       

每次对一个字符操作,*p指的是字符在ASCII中大小,' '为32,'~'忘了,这样就可以确定字符是不是正确的,  OLED_ShowChar(x,y,*p,size,1);     

中chr=chr-' ';//得到偏移后的值        就是这样

因为取模软件取模时,ASCII前32个不会取模,所以是在ASCII中数字大小减去32,就是取模时,得到的数字是第几行

接下来就是一个点一个点的画,没有什么难点了

if((y-y0)==size)
            {
                y=y0;
                x++;
                break;这个部分是为了字体大小为12*12时,最后一个字节只能用到高4位设置的。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值