您当前的位置: 首页 > 

正点原子

暂无认证

  • 0浏览

    0关注

    382博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

如何使用OLED显示图片

正点原子 发布时间:2021-11-02 17:03:34 ,浏览量:0

以下文章来源于:公_众_号开源电子网 读取更多技术文章,请扫码关注 在这里插入图片描述

如何使用OLED显示图片

前言 这篇文章不过多描述OLED工作原理及驱动过程,仅从实用性出发,如何使用OLED显示图片。这里我们以正点原子战舰板OLED实验例程为基础。

使用OLED显示图片分为两步: 1.图像取模 2.编写oled显示图片函数

一、图像取模

图片格式转换,将图片转化为单色,并且对单色图片进行取模。 ①首先准备好要操作的图片,然后使用Image2Lcd软件进行格式转换,输出数据类型为BMP格式,并且尺寸大小转换为128*64,具体操作如下图所示: 在这里插入图片描述

②BMP单色图片进行取模,获取图形数据,具体操作如下: 在这里插入图片描述

③在工程某个文件中定义一个数组接收图形数据数组,如下图所示: 在这里插入图片描述

(注意:我们已经知道图片尺寸是64*64 即数组的大小得需要512字节大小(64 * 8 byte))

二、编写oled显示图片函数
/**
 * @brief       OLED显示图片
 * @param       x  : 0~127
 * @param       y  : 0~63
 * @param       width  : 0~127
 * @param       height  : 0~63
 * @param       *pic  : 图片的起始地址
 * @param       mode: 1 正常显示 0,反向显示
 * @retval      无
 */
void oled_show_picture(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *pic, uint8_t mode)
{
    uint8_t temp, j;
    uint8_t y0 = y;
    uint8_t *g_pic = NULL;
    uint16_t i, psize = 0;

    /* 获取该图片的总字节数 */
    psize = (height / 8 + ((height % 8) ? 1 : 0)) * width;  

    /* 超出范围 直接返回 */
    if ((x + width > 128) || (y + height > 64))  return;    

    g_pic = (uint8_t *)pic;

    for (i = 0; i             
关注
打赏
1665308814
查看更多评论
0.0360s