OpenEdv-开源电子网

 找回密码
 立即注册
查看: 4925|回复: 6

littleVGL怎么移植到0.96寸OLED

[复制链接]

5

主题

12

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-2-4
在线时间
13 小时
发表于 2020-6-8 19:00:35 | 显示全部楼层 |阅读模式
13金钱
问题如题,主要是对接填充函数时不知道怎么做,试了几次都不好使

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

12

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-2-4
在线时间
13 小时
 楼主| 发表于 2020-6-8 21:52:18 | 显示全部楼层
刚刚这个问题解决了!,是这样的
  1. static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
  2. {
  3.     /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
  4.                 int16_t x;
  5.     int16_t y;
  6.                 for(y = area->y1; y <= area->y2; y++) {
  7.                                 for(x = area->x1; x <= area->x2; x++) {
  8.                                                 if(lv_color_to1(*color_p) == 0) OLED_DrawPoint(x, y, 1);
  9.                                                 else {}
  10.                                                 color_p++;
  11.                                 }
  12.                 }
  13.     /* IMPORTANT!!!
  14.      * Inform the graphics library that you are ready with the flushing*/
  15.     lv_disp_flush_ready(disp_drv);
  16. }
复制代码
回复

使用道具 举报

5

主题

12

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-2-4
在线时间
13 小时
 楼主| 发表于 2020-6-8 21:52:56 | 显示全部楼层
刚刚这个问题解决了,是这样的实现的
  1. static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
  2. {
  3.     /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
  4.                 int16_t x;
  5.     int16_t y;
  6.                 for(y = area->y1; y <= area->y2; y++) {
  7.                                 for(x = area->x1; x <= area->x2; x++) {
  8.                                                 if(lv_color_to1(*color_p) == 0) OLED_DrawPoint(x, y, 1);
  9.                                                 else {}
  10.                                                 color_p++;
  11.                                 }
  12.                 }
  13.     /* IMPORTANT!!!
  14.      * Inform the graphics library that you are ready with the flushing*/
  15.     lv_disp_flush_ready(disp_drv);
  16. }
复制代码
回复

使用道具 举报

5

主题

12

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-2-4
在线时间
13 小时
 楼主| 发表于 2020-6-8 21:53:36 | 显示全部楼层
这个刚才在官方论坛找到答案了,是这样实现的
  1. static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
  2. {
  3.     /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
  4.                 int16_t x;
  5.     int16_t y;
  6.                 for(y = area->y1; y <= area->y2; y++) {
  7.                                 for(x = area->x1; x <= area->x2; x++) {
  8.                                                 if(lv_color_to1(*color_p) == 0) OLED_DrawPoint(x, y, 1);
  9.                                                 else {}
  10.                                                 color_p++;
  11.                                 }
  12.                 }
  13.     /* IMPORTANT!!!
  14.      * Inform the graphics library that you are ready with the flushing*/
  15.     lv_disp_flush_ready(disp_drv);
  16. }
复制代码
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
发表于 2020-12-25 18:00:08 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2020-10-9
在线时间
8 小时
发表于 2021-1-30 09:35:24 | 显示全部楼层
有没别的,打点的速度太慢了
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2020-2-5
在线时间
7 小时
发表于 2021-4-8 10:04:02 | 显示全部楼层
花奴 发表于 2020-6-8 21:52
刚刚这个问题解决了!,是这样的

这个只是把SRAM中的数据更新了,在什么地方调用OLED_Refresh_Gram()函数呐
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表