今天来讲解一下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显示内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复