共计 2044 个字符,预计需要花费 6 分钟才能阅读完成。
移植后的代码仓链接:https://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 https://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 为测试代码
几个应用成果展现:
播放视频: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
作者:思维
正文完