支援鴻蒙OS的產品級SSD1306 OLED屏驅動庫(MIT許可證開源
移植後的程式碼倉連結: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); // 獲取開關狀態
如何編譯:
-
在openharmony原始碼目錄下克隆本專案:git clone github.com/xusiwei/harmonyos-ssd1306
-
修改openharmony原始碼的build/lite/product/wifiiot.json檔案:
將//applications/sample/wifi-iot/app替換為//harmonyos-ssd1306:app儲存;
-
在openharmony原始碼目錄下執行:python build.py wifiiot
專案程式碼中的 ssd1306_demo.c 和 ssd1306_tests.c 為測試程式碼
幾個使用效果展示:
播放影片:
播放gif動圖:
測試程式執行效果:
作者:思維
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2325/viewspace-2826602/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 支援鴻蒙OS的產品級SSD1306 OLED屏驅動庫(MIT許可證開源)鴻蒙MIT
- 開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別MITApache
- 開源許可證教程
- 七種開源許可證
- 鴻蒙 OS 程式碼正式開源!!鴻蒙
- 為什麼開源資料庫改變許可證?資料庫
- 重磅訊息:Kafka 團隊修改 KSQL 開源許可證,禁止其作為 SaaS 產品來提供KafkaSQL
- 為什麼GPL是更好的開源許可證?
- CATIA許可證升級步驟
- MySQL升級開源資料庫產品吸引新使用者(轉)MySql資料庫
- 鴻蒙開發從開源進入到閉源(Harmony OS)開發主流鴻蒙
- GitHub Copilot 似乎違反了開源許可證的規定Github
- [譯] React、Jest、Flow 和 Immutable.js 將使用 MIT 許可證ReactJSMIT
- 分配給 主機的 Evaluation Mode 許可證已過期。建議升級許可證。
- 開源中國專訪 TJ:開源許可證,歡迎來到雲時代
- MySQL 開源許可研究MySql
- IMX6ULL開發板spi OLED驅動
- 鴻蒙資料驅動鴻蒙
- 開源史上最成功的八個開源產品
- 許可權控制在數棧產品的實踐
- .NET 開源許可權認證專案 MiniAuth上線
- 看懂開源許可協議協議
- 一個開源軟體許可證合規的經濟高效模式模式
- UAVStack開源系列產品
- 相比開源,微軟的產品更便宜微軟
- 初創企業開源許可證管理九大法則
- 4款.NET開源的Redis客戶端驅動庫Redis客戶端
- 掘金開源庫產品近期更新說明(11-15)
- 宜信SDL實踐:產品經理如何驅動產品安全建設
- pd 17.1.3 企業許可證永久啟用!支援Intel!支援M1!Intel
- 小知識:軟體開發的許可權控制和許可權驗證
- Kopin開發高速微型OLED皮膚 讓VR產品更輕巧VR
- 【LCD驅動】VK1C21是超抗干擾LCD液晶段碼屏顯示驅動晶片,可驅動32*4點,FAE技術支援晶片
- Oracle開始啟動Java版本許可證的跟蹤審查 - theregisterOracleJava
- 如何管理開源產品的安全漏洞
- 鴻蒙OS 2.0應用開發初潮鴻蒙
- 優酷鴻蒙開發實踐|多屏互動開發實踐鴻蒙
- 可持續性從產品開發開始