• 基于rt-thread studio的STM32裸机开发第二节补充说明:OLED


    基于rt-thread studio的STM32裸机开发第二节补充说明:OLED驱动显示

    前言

    导入的软件包中,包含了大量的绘制元素,包括圆弧、直线、字符等,参照上一节案例内容,这里对其移植并进行说明。

    案例移植

    「案例源码解析」

    初始化内容

    1. u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
    2. u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_CLOCK, OLED_I2C_PIN_SCL);
    3. u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_DATA, OLED_I2C_PIN_SDA);
    4. u8g2_InitDisplay(&u8g2);
    5. u8g2_SetPowerSave(&u8g2, 0);

    OLED字符显示函数

    1. u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
    2. u8g2_DrawStr(&u8g2, 118"OLED on RTT");
    3. u8g2_SendBuffer(&u8g2);

    OLED清除原先字符屏幕显示内容 u8g2_ClearBuffer(&u8g2);

    「移植」

    将其作为函数模块进行封装为显示字符串函数、初始化、清屏等操作。

    1. u8g2_t u8g2;
    2. void oled_init(void)
    3. {
    4.     u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
    5.     u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_CLOCKOLED_I2C_PIN_SCL);
    6.     u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_DATAOLED_I2C_PIN_SDA);
    7.     u8g2_InitDisplay(&u8g2);
    8.     u8g2_SetPowerSave(&u8g2, 0);
    9. }
    10. //清楚显示数据缓冲为
    11. void oled_clear(void)
    12. {
    13.     u8g2_ClearBuffer(&u8g2);
    14. }

    字符串显示函数,这里加上绘制实心方块函数

    1. //绘制字符串
    2. void oled_str(uint16_t x, uint16_t y, const char *str)
    3. {
    4.     u8g2_SetFont(&u8g2, u8g2_font_ncenB10_tr);
    5.     u8g2_DrawStr(&u8g2, x, y, str);
    6.     u8g2_SendBuffer(&u8g2);
    7. }
    8. //绘制实心方块
    9. void oled_DrawBox(uint16_t x,uint16_t y, uint16_t w,uint16_t h)
    10. {
    11.     u8g2_DrawBox(&u8g2,x,y,w,h);
    12.     u8g2_SendBuffer(&u8g2);
    13. }

    对上述函数分别打包到新建的oled.h和oled.c文件中。

    测试

    「测试函数」

    「测试函数」

    • 函数初始化

    • 显示字符串和实心方块

    • 延时一秒,清除数据缓冲

    • 延时1s,重新显示字符串和实心方块

    以上就是本次的OLED驱动,采用软件包的形式进行开发,对其软件包中还有丰富的显示内容方式,可参考上述进行移植。

  • 相关阅读:
    性能分析-java虚拟机性能监控
    玩具品牌的国际化之路:市场推广战略解析
    C++多态(超级详细版)
    邮件|gitpushgithub报错|Lombok注解
    【ubuntu】开机后ROS程序自启动
    神经网络训练数据集大小,神经网络输入图片大小
    MTK手机平台充电原理
    以汇川中型PLC(AM系列)为例,CODESYS平台变量与字节数组互转的多种方法
    华为云云耀云服务器L实例评测|运行python脚本
    OpenCV--图像的基本变换
  • 原文地址:https://blog.csdn.net/qq_34187873/article/details/126175638