当前位置:网站首页>基于rt-thread studio的STM32裸机开发第二节补充说明:OLED
基于rt-thread studio的STM32裸机开发第二节补充说明:OLED
2022-08-05 14:31:00 【鱼芯工作室】
*基于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驱动,采用软件包的形式进行开发,对其软件包中还有丰富的显示内容方式,可参考上述进行移植。 
边栏推荐
- ES6解构详解
- The operation process of uploading pictures to Taobao - upload_img
- Today's sleep quality record 78 points
- PC端浏览器兼容
- 内存问题难定位,那是因为你没用ASAN
- Docker study notes - cluster deployment based on example projects (5) Docker builds MySQL cluster | PXC cluster
- 一篇笔记爆不爆,话题占了爆文的绝大部分,这篇文章教你
- 基于STM32单片机设计指纹考勤机+上位机管理
- NLP paper reading | Parametric machine translation meets comparative learning: I want both efficiency and performance!
- Graduation thesis description layout sample
猜你喜欢
随机推荐
‘proxy‘ config is set properly,see“npm help config“
Postgresql源码(67)LWLock锁的内存结构与初始化
Observation cloud product update|DCA web terminal is online; new global viewer auto refresh configuration; new global blacklist function; new custom function menu, etc.
为什么你做自媒体赚不到钱?今天就教你几招
内存问题难定位,那是因为你没用ASAN
Tools to Improve Efficiency
顺序表(上)
【Endnote】插入文献时,自动弹出select matching reference
图神经网络 图像处理,为什么用图神经网络
[WCN685X] WCN6856 WiFi 6E设置Open连接失败问题分析及解决方案
It is more detailed than a certain teacher (anti-PPT series) series - custom type (below)
第五讲 测试技术与用例设计
Feign 的简单使用
深度卷积神经网络是什么,卷积神经网络结构设计
字节跳动 Flink 状态查询实践与优化
day6·动态导入模块
2022-08-02~04 Group 4 Self-cultivation class study notes (every day)
双因子与多因子身份验证有什么区别?
Business local multithreading
OpenHarmony如何查询设备类型









