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

ldzsl發表於2021-09-09

移植後的程式碼倉連結:github.com/hihope/harmonyos-ssd1306

功能簡介:

  • 使用Harmony OS的IoT硬體介面

  • 提供字元繪製相關介面,內建四種字型大小的ASCII字元;

  • 提供圖形繪製相關介面,如繪製直線、矩形、圓形等;

  • 內建一個128x64bit記憶體緩衝區,支援全屏重新整理(可以用來實現動畫、影片播放);

  • 針對SSD1306連續資料傳送進行了最佳化,目前全屏重新整理速率能夠達到10幀每秒;

  • 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 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 為測試程式碼

幾個使用效果展示:

播放影片:

播放gif動圖:

測試程式執行效果:

作者:思維

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2325/viewspace-2826602/,如需轉載,請註明出處,否則將追究法律責任。

相關文章