我是靠谱客的博主 害羞猎豹,最近开发中收集的这篇文章主要介绍0.96寸OLED显示 图片1、BMP图片制作(取模)2、程序讲解与调用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天来讲解一下STM32驱动OLED显示图片,本次教程分为两部分:
1、BMP图片制作
2、程序讲解与调用

1、BMP图片制作(取模)

BMP图片取模讲解两种方式:自己画图、普通图片制作。

1)自己画图

自己画图我们首先做一张白纸图片,例如截一张白色的电脑图片

点击文件–>属性 保存为黑白(因为使用的是单色的OLED),大小最大为128*64

然后就可以利用画图软件自由发挥绘画的内容了(提示如果转换为黑白图片后全黑可以利用画图软件画为白色)

最后另保存为BMP格式

2)普通图片制作

任意一张图片(最好是颜色少,有大面积白色的图片)调整图片像素大小

另存为BMP图片

3)图片取模

打开软件PCtoLCD完美版
导入我们制作的图片

设置字模选项,注意图中画圈部分,不要设置错误,不然会出现显示不正常现象,等会我们制作一个设置错误导致显示不正常的例子
行前缀和后缀不要“{”、“}”,不然会生成二维数组,对数组调用产生麻烦

下面是上传程序显示效果

下面演示一下错误设置字模选项出现的结果

下面是错误设置出现的现象,图片显示完全错位

也可以在取模软件制作图片,在图中画圈部分按住鼠标左键可以选择屏幕点亮部分,右键可以将点亮部分擦除
擦除前

擦除后


这两只企鹅转换后的造型,实在是有些搞笑啊。。。

2、程序讲解与调用

程序就不废话了,直接上程序
图库:
在这里插入图片描述
绘图:

//显示图片(通过改变索引值和图片对应的像素可以显示不同像素的图片)
//x,y:图片的起点坐标
//px,py:图片的像素(与实际取模的图片像素一致)
//index:图片索引
void OLED_ShowBMP(u8 x, u8 y, u8 px, u8 py, u8 index, u8 mode)
{
    u8 temp,t1;
    u16 j,i;
    u8 y0=y;
    
    i = (px/2)*(py/4);
 
    for(j = 0; j < i;j++)
    {
        temp = Image[index][j];    //调用图片                          
        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) == py)
            {
                y=y0;
                x++;
                break;
            }
        }
    }
}

主函数调用:

	 OLED_ShowBMP(0, 0, 128, 64, 6, 1);// 	  
	 OLED_Refresh_Gram();//更新显示到OLED	 

最后

以上就是害羞猎豹为你收集整理的0.96寸OLED显示 图片1、BMP图片制作(取模)2、程序讲解与调用的全部内容,希望文章能够帮你解决0.96寸OLED显示 图片1、BMP图片制作(取模)2、程序讲解与调用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部