支持鴻蒙OS的產品級SSD1306 OLED屏驅動庫(MIT許可證開源)

移植後的代碼倉連接:https://github.com/hihope/harmonyos-ssd1306java

功能簡介:python

  • 使用Harmony OS的IoT硬件接口git

  • 提供字符繪製相關接口,內置四種字體大小的ASCII字符;github

  • 提供圖形繪製相關接口,如繪製直線、矩形、圓形等;json

  • 內置一個128x64bit內存緩衝區,支持全屏刷新(能夠用來實現動畫、視頻播放);app

  • 針對SSD1306連續數據發送進行了優化,目前全屏刷新速率可以達到10幀每秒;ide

  • MIT許可證,可以使用到產品級代碼中;

API接口以下:測試

void ssd1306_Init(void); // 初始化

void ssd1306_Fill(SSD1306_COLOR color); // 全屏填充
void ssd1306_SetCursor(uint8_t x, uint8_t y); // 設置光標位置
void ssd1306_UpdateScreen(void); // 更新屏幕,庫中有一個內存緩衝區,繪製接口會將圖像輸出到內存緩衝區中,此接口會將緩衝區內容發送給SSD1306芯片

// 字符繪製相關接口
char ssd1306_DrawChar(char ch, FontDef Font, SSD1306_COLOR color);
char ssd1306_DrawString(char* str, FontDef Font, SSD1306_COLOR color);

// 圖形繪製相關接口
void ssd1306_DrawPixel(uint8_t x, uint8_t y, SSD1306_COLOR color);
void ssd1306_DrawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, SSD1306_COLOR color);
void ssd1306_DrawArc(uint8_t x, uint8_t y, uint8_t radius, uint16_t start_angle, uint16_t sweep, SSD1306_COLOR color);
void ssd1306_DrawCircle(uint8_t par_x, uint8_t par_y, uint8_t par_r, SSD1306_COLOR color);
void ssd1306_DrawPolyline(const SSD1306_VERTEX *par_vertex, uint16_t par_size, SSD1306_COLOR color);
void ssd1306_DrawRectangle(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, SSD1306_COLOR color);

// 繪製矩形區域,能夠用於繪製預渲染的漢字位圖
void ssd1306_DrawRegion(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t* data, uint32_t size, uint32_t stride);
// 全屏繪製位圖,[bitmap, size) 表示的內存區域須要須要和屏幕尺寸相同,小於屏幕尺寸使用 DrawRegion
void ssd1306_DrawBitmap(const uint8_t* bitmap, uint32_t size);
// 控制相關接口
void ssd1306_SetContrast(const uint8_t value); // 設置對比度
void ssd1306_SetDisplayOn(const uint8_t on); // 開關

uint8_t ssd1306_GetDisplayOn(void); // 獲取開關狀態

如何編譯:字體

  1. 在openharmony源碼目錄下克隆本項目:git clone https://github.com/xusiwei/harmonyos-ssd1306優化

  2. 修改openharmony源碼的build/lite/product/wifiiot.json文件:

    將//applications/sample/wifi-iot/app替換爲//harmonyos-ssd1306:app保存;

  3. 在openharmony源碼目錄下執行:python build.py wifiiot

項目代碼中的 ssd1306_demo.c 和 ssd1306_tests.c 爲測試代碼

幾個使用效果展現:

播放視頻:https://www.bilibili.com/video/BV1DK4y1f7yw/

播放gif動圖:https://www.bilibili.com/video/BV1Af4y1B7TD/

測試程序運行效果:https://www.bilibili.com/video/BV1C5411j7Cs/


原文連接:https://developer.huawei.com/consumer/cn/forum/topic/0204398680425490100?fid=0101303901040230869做者:思惟

相關文章
相關標籤/搜索