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

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

前言

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

案例移植

「案例源码解析」

初始化内容

u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
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);

OLED字符显示函数

u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
u8g2_DrawStr(&u8g2, 1, 18, "OLED on RTT");
u8g2_SendBuffer(&u8g2);

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

「移植」

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

u8g2_t u8g2;

void oled_init(void)
{

    u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay_rtthread);
    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);
}
//清楚显示数据缓冲为
void oled_clear(void)
{
    u8g2_ClearBuffer(&u8g2);
}

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

//绘制字符串
void oled_str(uint16_t x, uint16_t y, const char *str)
{
    u8g2_SetFont(&u8g2, u8g2_font_ncenB10_tr);
    u8g2_DrawStr(&u8g2, x, y, str);
    u8g2_SendBuffer(&u8g2);
}
//绘制实心方块
void oled_DrawBox(uint16_t x,uint16_t y, uint16_t w,uint16_t h)
{
    u8g2_DrawBox(&u8g2,x,y,w,h);
    u8g2_SendBuffer(&u8g2);
}

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

测试

「测试函数」

「测试函数」

  • 函数初始化

  • 显示字符串和实心方块

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RT-Thread作品秀】OLED显示演示作者:谢博翔 概述初步体验 RT-Thread出的RTT核心版 ART-Pi,使用RTT用OLED显示 开发环境硬件:ART-Pi RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio 2.0 RT-Thread使用情况概述软件包:使用u8g2 U8g2是嵌入式设备的单色图形库,目前支持单色OLED和LCD,包括以下控制器:SSD1305,SSD1306等 选用u8g2的原因: U8g2库平台支持性好,基本上支持绝大部分开发板,并且RTT已经有对应的软件包 U8g2库显示控制器支持性好,基本上市面上的OLED都完美支持; U8g2库API众多,特别支持了文,支持了不同字体,这是一个对于开发者俩说不小的福利 硬件框架软件框架说明添加u8g2软件包,修改I2C接口和显示文字,编译、烧录。运行程序,打开监视串口:输入shell:u8g2_ssd1306_12864_sw_i2c_example 软件模块说明修改I2C接口 输入显示的内容 定义 RT_USINF_PIN 演示效果视频地址比赛感悟应改要多学习,多认真思考,多动手实践,不应该只停留在基础的实践,应该多coding,而且掌握好间; 未来应该是RTOS和Linux的天下,现在 RT-Thread开源,是一件很好的事情;虽然国内开源的RTOS的已经好几家, 但现在看来,生态做的又好,软件又好用的,可能 RT-Thread 是最好的! 也感谢电路城这次的活动,以前对电路城并不是很了解,这次上传资料,简单看了下,感觉收获多多,也希望 后面能在这里学到和提供一些东西~ 加油

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值