找回密码
 立即注册
楼主: 大明狐

《一起玩OLED屏幕》高清版-Part2-在屏幕上画画

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-30 20:35:21 | 显示全部楼层
大*** 发表于 2024-7-30 19:46
用STC8H8K直接试的你的程序。除了I2C的两个IO其他都没动,显示也没问题

...

不懂了!显示屏有问题?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-30 20:41:18 | 显示全部楼层
大*** 发表于 2024-7-30 19:46
用STC8H8K直接试的你的程序。除了I2C的两个IO其他都没动,显示也没问题

...

有没有试一试右下角往左上角画线的情况?

点评

八个方向都正常显示。从(127,31)到(0,0),还有你写的从(10,31)到(0,0)也是都从右下向左上的,都能显示。 画线函数里那段串口打印,也能显示出那些数值。 [attachimg]52687[/attachimg] 另外,清屏函数里的  详情 回复 发表于 2024-7-31 09:41
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-7-31 09:41:55 | 显示全部楼层
本帖最后由 大明狐 于 2024-7-31 09:44 编辑
men*** 发表于 2024-7-30 20:41
有没有试一试右下角往左上角画线的情况?

八个方向都正常显示。从(127,31)到(0,0),还有你写的从(10,31)到(0,0)也是都从右下向左上的,都能显示。
画线函数里那段串口打印,也能显示出那些数值。(因为加上串口打印有些影响画点速度,视频就不录了,效果跟昨天发的动图里一样)
右下左上.jpg


另外,清屏函数里的行范围写小了,屏幕上最下面一行清不掉。范围0~3话应该是 <4 或者 <=3
QQ20240731-093656.jpg

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-31 18:59:04 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-31 19:01:17 | 显示全部楼层
本帖最后由 men007 于 2024-7-31 19:02 编辑
大*** 发表于 2024-7-31 09:41
八个方向都正常显示。从(127,31)到(0,0),还有你写的从(10,31)到(0,0)也是都从右下向左上的,都能 ...

我的从(10,31)到(0,0)的串口打印结果如图

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-31 19:33:12 | 显示全部楼层
本帖最后由 men007 于 2024-7-31 19:38 编辑
大*** 发表于 2024-7-31 09:41
八个方向都正常显示。从(127,31)到(0,0),还有你写的从(10,31)到(0,0)也是都从右下向左上的,都能 ...

用你新修订的画线函数,画图成功!

感谢!

“能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运”

哲话有点意思

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-31 19:37:35 | 显示全部楼层
本帖最后由 men007 于 2024-7-31 20:16 编辑
大*** 发表于 2024-7-31 09:41
八个方向都正常显示。从(127,31)到(0,0),还有你写的从(10,31)到(0,0)也是都从右下向左上的,都能 ...

从(128,31)到(0,0)
画到
(3,31)到(0,0)步长5
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-7-31 19:45:55 | 显示全部楼层
大*** 发表于 2024-7-31 09:41
八个方向都正常显示。从(127,31)到(0,0),还有你写的从(10,31)到(0,0)也是都从右下向左上的,都能 ...

你的OLED_DrawPoint函数中
    if ( draw )
        GRAM[ n *128 + x ]  |=   ( 0x01 << m );
    else if ( !draw )
        GRAM[ n * 128 + x ]  &= ~( 0x01 << m );
是不是多了个else
    if ( draw )
        GRAM[ n *128 + x ]  |=   ( 0x01 << m );
    if ( !draw )
        GRAM[ n * 128 + x ]  &= ~( 0x01 << m );
这样就行了吧

点评

这个是if言句的格式,,每个 if 后面都是不同的判断条件。 用 else 连接 if ,当条件1不符合的时候,就去判断条件2,如果条件2符合就执行语句2并且退出判断,否则就继续判断下一个条件, 直到都不符合,就执行最后  详情 回复 发表于 2024-8-1 09:00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-8-1 09:00:41 | 显示全部楼层
本帖最后由 大明狐 于 2024-8-1 11:48 编辑
men*** 发表于 2024-7-31 19:45
你的OLED_DrawPoint函数中
    if ( draw )
        GRAM[ n *128 + x ]  |=   ( 0x01

这个是if语句的格式,,每个 if 后面都是不同的判断条件。
用 else 连接 if ,当条件1不符合的时候,就去判断条件2,如果条件2符合就执行语句2并且退出判断,否则就继续判断下一个条件,
直到都不符合,就执行最后那个else里的语句4。
如果不写最后的那组 else ,就是如果所有条件都不符合,那就退出判断,什么都不做。
  1. if(条件1)
  2. {
  3.     语句1;
  4. }
  5. else if(条件2)
  6. {
  7.     语句2;
  8. }
  9. else if(条件3)
  10. {
  11.     语句3;
  12. }
  13. else
  14. {
  15.     语句4;
  16. }
复制代码
所以我写的那行 else if ( !draw ),因为只有两个判断条件,也可以直接写成 else。
    if ( draw )
        GRAM[ n *128 + x ]  |=   ( 0x01 << m );
    else if ( !draw )
        GRAM[ n * 128 + x ]  &= ~( 0x01 << m );


如果全部只用 if 判断,那么即使第一条 ( draw ) 符合条件,执行完之后,程序也会再去判断一次 ( !draw )








能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:347
  • 最近打卡:2025-05-01 10:36:23

7

主题

281

回帖

1051

积分

金牌会员

积分
1051
发表于 2024-8-1 10:33:03 | 显示全部楼层
大*** 发表于 2024-8-1 09:00
这个是if言句的格式,,每个 if 后面都是不同的判断条件。
用 else 连接 if ,当条件1不符合的时候,就去 ...

谢谢!又学到到点
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 20:11 , Processed in 0.211918 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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