资深版主
 
- 积分
- 10565
- 金钱
- 10565
- 注册时间
- 2017-2-18
- 在线时间
- 1913 小时
|
本帖最后由 peng1554 于 2018-9-9 15:13 编辑
程序基于各开发板的OLED显示实验例程修改而来,利用图片转换工具将需要显示的图片裁剪为128*64尺寸,再经过Image2Lcd软件生成C语言数组形式的图片数据这里图片转换工具使用的是“图片转换器 Version4.9.2版本”,软件设置如图1和2(其余设置默认)
图1
图2
得到128*64的灰度图片后,使用Image2Lcd来生成C语言数组形式的图片数据,软件设置如图3:
图3
需要“输出图像”选项应该为128*64,不然显示在OLED上的图片不好看,“亮度”这块要根据根据图片效果来设置
生成的C语言数组形式的图片数据存放在oled_picture.h中。整个程序最重要的就是OLED_ShowPicture()
[mw_shl_code=c,true]//在指定位置,显示一个图片
//x:0~127
//y:0~63
//index:图片编号(在图片C语言数组里面的编号)
//mode:0,反白显示;1,正常显示
void OLED_ShowPicture(u8 x,u8 y,u8 index,u8 mode)
{
u16 temp,t,t1;
u8 y0=y;
for(t=0;t<1024;t++) //显示图片
{
temp=gImage_logo[index][t]; //图片C语言数组中的数据赋值给temp, 一字节一字节地对OLED进行画点
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)==64) //对y坐标的处理,当y坐标写完之后.x坐标加1
{
y=y0;
x++;
break;
}
}
}
} [/mw_shl_code]
然后main函数里边调用OLED_ShowPicture()来支持图片显示
[mw_shl_code=c,true] OLED_ShowPicture(0,0,0,0);//从x=1,y=0开始显示,反白显示
OLED_Refresh_Gram();//更新显示到OLED [/mw_shl_code]
OLED显示效果如图
|
|