支援鴻蒙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
- 鴻蒙 OS 程式碼正式開源!!鴻蒙
- 開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別MITApache
- 鴻蒙資料驅動鴻蒙
- 鴻蒙開發從開源進入到閉源(Harmony OS)開發主流鴻蒙
- 鴻蒙 OS 的測試工具鴻蒙
- 鴻蒙OS 2.0應用開發初潮鴻蒙
- 為鴻蒙OS說兩句公道話(我對鴻蒙OS的一些看法)鴻蒙
- 初識鴻蒙OS,你好,HarmonyOS!鴻蒙
- 為什麼開源資料庫改變許可證?資料庫
- 鴻蒙系統系列教程3-鴻蒙OS的技術特徵講解鴻蒙特徵
- 鴻蒙OS的系統呼叫是如何實現的? | 解讀鴻蒙原始碼鴻蒙原始碼
- 香橙派將推 Orange Pi OS 系統,基於開源鴻蒙 OpenHarmony 打造鴻蒙
- 鴻蒙OS揭面紗,開發者怎麼看鴻蒙
- 優酷鴻蒙開發實踐|多屏互動開發實踐鴻蒙
- 重磅訊息:Kafka 團隊修改 KSQL 開源許可證,禁止其作為 SaaS 產品來提供KafkaSQL
- Flutter仿京東商城專案:支援最新的Flutter 3.x及鴻蒙OSFlutter鴻蒙
- 鴻蒙生態夥伴SDK市場正式釋出,驅動千行百業鴻蒙原生應用開發鴻蒙
- 鴻蒙系統系列教程2-鴻蒙OS系統分散式操作講解鴻蒙分散式
- OS-鴻蒙系統-以及編譯器鴻蒙編譯
- GitHub Copilot 似乎違反了開源許可證的規定Github
- 繼鴻蒙OS後,華為再捐贈旗下尤拉系統給開源基金會!鴻蒙
- 我的第一個基於HarmonyOS的 (鴻蒙 OS)TV鴻蒙
- 鴻蒙系統超級終端怎麼使用?鴻蒙系統超級終端開啟教程鴻蒙
- 深開鴻:萬物智聯的大江上,升起一輪開源鴻蒙月鴻蒙
- CATIA許可證升級步驟
- 市場變化驅動產品思維升級
- 優酷鴻蒙開發實踐 | 鴻蒙卡片開發鴻蒙
- 東吳證券:看好鴻蒙OS帶動汽車生態夥伴投資機會(附下載)鴻蒙
- 鴻蒙OS架構及關鍵技術整理鴻蒙架構
- 《三國殺》完成鴻蒙原生應用開發,更多遊戲品類加入鴻蒙生態鴻蒙遊戲
- 品讀鴻蒙HDF架構(二)鴻蒙架構
- 鴻蒙Next安全基石:應用沙箱與許可權機制深度剖析鴻蒙
- 鴻蒙無許可權實現圖片選擇拍照和錄影片鴻蒙
- MySQL 開源許可研究MySql
- 已開源!一款支援鴻蒙 NEXT Android iOS 的 UI 控制元件檢視器.md鴻蒙AndroidiOSUI控制元件
- 礦山中的鴻蒙花開鴻蒙
- .NET 開源許可權認證專案 MiniAuth上線