HarmonyOS鸿蒙Next Hi3861:自家开发版上OLED屏幕显示各项内容

HarmonyOS鸿蒙Next Hi3861:自家开发版上OLED屏幕显示各项内容

做了 OLED 屏幕显示图片,特殊符号,字母,条形,圆弧,动画播放等操作。

代码量比较大,这里只展示小部分代码。

#include "ssd1306.h"
#include <math.h>
#include <stdlib.h>
#include <string.h> // For memcpy

#include <stdio.h>
#include <unistd.h>
#include "cmsis_os2.h"
#include "wifiiot_i2c.h"
#include "wifiiot_errno.h"

#if defined(SSD1306_USE_I2C)
#define SSD1306_I2C_IDX WIFI_IOT_I2C_IDX_0
#define SSD1306_CTRL_CMD 0x00
#define SSD1306_CTRL_DATA 0x40
#define SSD1306_MASK_CONT (0x1 << 7)

void ssd1306_Reset(void) {
    // for I2C - do nothing
}

void HAL_Delay(uint32_t ms) {
    uint32_t msPerTick = 1000 / osKernelGetTickFreq(); // 10ms
    if (ms >= msPerTick) {
        osDelay(ms / msPerTick);
    }
    uint32_t restMs = ms % msPerTick;
    if (restMs > 0) {
        usleep(restMs * 1000);
    }
}

uint32_t HAL_GetTick(void) {
    uint32_t msPerTick = 1000 / osKernelGetTickFreq(); // 10ms
    uint32_t tickMs = osKernelGetTickCount() * msPerTick;
    return tickMs + restMs;
}

更多关于HarmonyOS鸿蒙Next Hi3861:自家开发版上OLED屏幕显示各项内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

你好,请问显示中文的代码是怎么样的,好像没有看到?

更多关于HarmonyOS鸿蒙Next Hi3861:自家开发版上OLED屏幕显示各项内容的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个是我们比较早期的练习作品了。当初还没用GITEE保存和分享完整的代码包。这整个代码,社区里应该可以找到的。

76fbb885ea93209a6d5dce6f9cf9b9c.png

e5522d019b8019f717e35416a616042.png

你好,能帮我看看这段代码哪里有错吗?为什么他只能显示第一个字?

HarmonyOS鸿蒙Next Hi3861开发板上OLED屏幕显示内容主要依赖于鸿蒙系统的图形框架和驱动支持。鸿蒙系统提供了graphic模块,用于管理图形显示,开发者可以通过graphic模块的API在OLED屏幕上绘制文本、图形等内容。

在Hi3861开发板上,OLED屏幕的驱动通常通过I2C或SPI接口与主控芯片通信。鸿蒙系统提供了display模块,用于管理显示设备,开发者可以通过display模块的API初始化OLED屏幕,并设置显示参数。

具体实现步骤包括:

  1. 初始化OLED屏幕:通过display模块的API初始化OLED屏幕,设置分辨率、颜色模式等参数。
  2. 创建图形缓冲区:使用graphic模块的API创建图形缓冲区,用于存储待显示的内容。
  3. 绘制内容:在图形缓冲区中绘制文本、图形等内容,可以使用graphic模块提供的绘图函数,如draw_textdraw_line等。
  4. 刷新显示:将图形缓冲区的内容刷新到OLED屏幕上,使用display模块的API进行刷新操作。

示例代码片段:

#include "graphic.h"
#include "display.h"

void oled_display() {
    // 初始化OLED屏幕
    display_init();

    // 创建图形缓冲区
    graphic_buffer_t buffer = graphic_create_buffer(128, 64);

    // 绘制文本
    graphic_draw_text(buffer, "Hello, HarmonyOS!", 10, 10);

    // 刷新显示
    display_refresh(buffer);
}

以上代码展示了如何在Hi3861开发板的OLED屏幕上显示文本内容。开发者可以根据需要扩展功能,显示更多复杂的内容。

在HarmonyOS鸿蒙Next Hi3861开发板上,通过OLED屏幕显示内容通常涉及以下步骤:

  1. 硬件连接:确保OLED屏幕正确连接到Hi3861开发板的I2C或SPI接口。
  2. 驱动配置:在代码中配置OLED屏幕的驱动,包括初始化I2C/SPI通信、设置屏幕分辨率和显示模式。
  3. 显示内容:使用API函数将文本、图像或图形数据发送到OLED屏幕进行显示。例如,使用oled_show_string()显示字符串,oled_show_image()显示图像。
  4. 刷新屏幕:调用刷新函数更新屏幕显示内容。

示例代码片段:

#include "oled.h"

void main() {
    oled_init(); // 初始化OLED
    oled_clear(); // 清屏
    oled_show_string(0, 0, "Hello, HarmonyOS!"); // 显示字符串
    oled_refresh(); // 刷新屏幕
}

通过这些步骤,您可以在Hi3861开发板上实现OLED屏幕的内容显示。

回到顶部