基于Apollo2 SDK上OLED屏幕的实现
显示效果如下图:
(图10)文字显示效果
9.OLED屏幕图片显示
照片显示和文字显示原理相同,也是点亮相对应的像素点。
该函数当中,x0 ,y0表示的是图片所显示的的起始坐标,x1 表示的是图片像素的x轴所占的像素,y1表示的是页数(0-7)
将想要显示的图片,转换成BMP格式之后,通过PCtolCD2002的图片模式进行转换。设置如下:选择阴码,逆向,十六进制输出。
(图11)图片取模选项设置
(图12)图片取模界面
将所生成的十六进制数据进行,修改对齐后,装到BMP数组当中。在主函数当中就可以直接显示了,效果如下图。
(图13)图片显示效果
后记
在调试当中遇到的一些需要注意的点:
1、在freeRTOS下,使用OLED屏幕的话,需要预先启用SPI相对于的IOM 口。
需要用到函数:
am_hal_pwrctrl_periph_enable(uint32_t ui32Peripheral)进行相应的配置。同理在进行低功耗处理的时候,可以关闭SPI接口。
am_hal_pwrctrl_periph_enable(uint32_t ui32Peripheral)
{
am_hal_debug_assert_msg(ONE_BIT(ui32Peripheral),
"Cannot enable more than one peripheral at a time.");
//
// Begin critical section.
//
AM_CRITICAL_BEGIN_ASM
//
// Enable power control for the given device.
//
AM_REG(PWRCTRL, DEVICEEN) |= ui32Peripheral;
//
// End Critical Section.
//
AM_CRITICAL_END_ASM
//
// Wait for the power to stablize. Using a simple delay loop is more
// power efficient than a polling loop.
//
am_hal_flash_delay(AM_HAL_PWRCTRL_DEVICEEN_DELAYCYCLES / 3);
//
// Quick check to guarantee we're good (should never be more than 1 read).
//
POLL_PWRSTATUS(ui32Peripheral);
}
2、OLED屏幕在进行Clear的时候,屏幕不干净
(图14)屏幕刷新有残留
原因是:写到寄存器第一列和第二列的数据被驱动芯片当做乱码并在 显示屏的最后一列显示出来。修改如下:
把程序中“所有 X”轴的值改成 132,如下图定义的是 X 轴与 Y 轴。
同时,clear函数里面,循环发送数据的次数,也应该从n<128 改为 n<132。
3、图片显示函数
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1,
unsigned char y1,unsigned char BMP[])
{
unsigned int j=0;
unsigned char x,y;
if(y1%8==0) y=y1/8;
else y=y1/8+1;
for(y=y0;y<y1;y++)
{
OLED_Set_Pos(x0,y);
for(x=x0;x<x1;x++)
{
OLED_WR_Byte(BMP[j++],OLED_DATA);
}
}
}
在使用该函数的时候,首先要注意的是,y1表示的是页数(0-7)也就是前文指的page,而不是你所给照片取模的Y轴的像素。其次在照片取模当中,尽量控制为128*64的大小。如果图片大小无法满足,则在使用OLED_DrawBMP()的时候,x与x1的数据差应该就是你图片的像素大小。
例如:
我的照片大小为 (92 X 60 ),如果选择屏幕显示的起始坐标点为(0,0)
则函数为:OLED_DrawBMP(0,0,92,7,BMP);
但是当你想移动图片的位置,修改为
OLED_DrawBMP(18,0,92,7,BMP);显示的结果会出现乱码。正确的方式是改为OLED_DrawBMP(18,0,110,7,BMP);
文章来源:润欣科技Fortune微信公众号
图片新闻
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论