今天来讲解一下STM32驱动OLED显示图片,本次教程分为两部分: 1、BMP图片制作 2、程序讲解与调用
1、BMP图片制作(取模)
BMP图片取模讲解两种方式:自己画图、普通图片制作。
1)自己画图
自己画图我们首先做一张白纸图片,例如截一张白色的电脑图片 点击文件–>属性 保存为黑白(因为使用的是单色的OLED),大小最大为128*64 然后就可以利用画图软件自由发挥绘画的内容了(提示如果转换为黑白图片后全黑可以利用画图软件画为白色) 最后另保存为BMP格式 ![](https://img-blog.csdnimg.cn/20200309181531606.png)
2)普通图片制作
任意一张图片(最好是颜色少,有大面积白色的图片)调整图片像素大小 另存为BMP图片 ![](https://img-blog.csdnimg.cn/20200309183316920.png)
3)图片取模
打开软件PCtoLCD完美版 导入我们制作的图片 设置字模选项,注意图中画圈部分,不要设置错误,不然会出现显示不正常现象,等会我们制作一个设置错误导致显示不正常的例子 行前缀和后缀不要“{”、“}”,不然会生成二维数组,对数组调用产生麻烦 下面是上传程序显示效果 ![](https://img-blog.csdnimg.cn/20200309185930288.png)
下面演示一下错误设置字模选项出现的结果 下面是错误设置出现的现象,图片显示完全错位 ![](https://img-blog.csdnimg.cn/20200309190055938.png)
也可以在取模软件制作图片,在图中画圈部分按住鼠标左键可以选择屏幕点亮部分,右键可以将点亮部分擦除 擦除前 ![](https://img-blog.csdnimg.cn/20200309190601718.png)
擦除后 这两只企鹅转换后的造型,实在是有些搞笑啊。。。
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
if(temp&0x80)OLED_DrawPoint(x,y,mode);
else OLED_DrawPoint(x,y,!mode);
temp |