RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)

1. 添加u8g2软件包

RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)_第1张图片
RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)_第2张图片

2. 编辑代码

/*
 * Copyright (c) 2006-2020, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2020-03-05     Mculover666       the first version
 */
#include 
#include 
#include 
#include 

#define OLED_I2C_PIN_SCL                    48  // PD0
#define OLED_I2C_PIN_SDA                    49  // PD1

static void ssd1306_12864_sw_i2c_example(int argc,char *argv[])
{
    u8g2_t u8g2;

    // Initialization
    u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_rt_gpio_and_delay);
    u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_CLOCK, OLED_I2C_PIN_SCL);
    u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_DATA, OLED_I2C_PIN_SDA);

    u8g2_InitDisplay(&u8g2);
    u8g2_SetPowerSave(&u8g2, 0);

    // Draw Graphics
    /* full buffer example, setup procedure ends in _f */
    u8g2_ClearBuffer(&u8g2);
    u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
    u8g2_DrawStr(&u8g2, 1, 18, "IoT Station");
    u8g2_SendBuffer(&u8g2);

    u8g2_SetFont(&u8g2, u8g2_font_unifont_t_symbols);
    u8g2_DrawGlyph(&u8g2, 112, 56, 0x2603 );
    u8g2_SendBuffer(&u8g2);
}
MSH_CMD_EXPORT(ssd1306_12864_sw_i2c_example, i2c ssd1306 software i2c sample);

3. 编译测试

RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)_第3张图片
RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)_第4张图片
接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。

你可能感兴趣的:(RT-Thread,迷你桌面时钟项目实战)