找回密码
 立即注册
楼主: 电子D***

STC32G驱动OLED12864,SPI或I2C两种方式

  [复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 90 天

    [LV.6]常住居民II

    38

    主题

    986

    回帖

    6773

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6773
    QQ
     楼主| 发表于 2024-4-12 08:09:11 | 显示全部楼层
    Avid+ 发表于 2024-4-11 21:10
    冲哥 显示范围怎么改啊?
    128*64 iic 我直接套用你的显示函数很方便,OLED屏显示原理我都不用学了,省了 ...

    驱动芯片一样的话,显示的y轴位置改下就好啦~原来最大是64,你改成32最大就好了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-12 11:10
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    2

    主题

    8

    回帖

    98

    积分

    注册会员

    积分
    98
    发表于 2024-4-12 11:48:56 | 显示全部楼层
    电子DIY小家 发表于 2024-4-12 08:09
    驱动芯片一样的话,显示的y轴位置改下就好啦~原来最大是64,你改成32最大就好了 ...

    冲哥,是oled.c 这个文件吗?没找到Y最大64在什么地方
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 07:19
  • 签到天数: 49 天

    [LV.5]常住居民I

    0

    主题

    2

    回帖

    222

    积分

    中级会员

    积分
    222
    发表于 2024-4-14 22:46:52 | 显示全部楼层
    测试画斜线时会出现不正常现象,感觉斜率大了不正常,但是完全水平或垂直又是正常的。
    测试时给的是直接坐标数据
    OLED_BuffShowLine(4,56,124,16); //比如画这一条,就是正常的。
    OLED_BuffShowLine(52,41,56,34); // 但是这一条不正常
    具体现象就是OLED_BuffShowPoint(x,(unsigned char)(y1-(u16)(y1-y2)*(u16)x/(u16)(x2-x1))计算出来的y坐标是-50,
    转换成unsigned char类型后是206,远超过Y轴的范围。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 18:26
  • 签到天数: 54 天

    [LV.5]常住居民I

    0

    主题

    73

    回帖

    418

    积分

    中级会员

    积分
    418
    QQ
    发表于 2024-4-17 08:50:01 | 显示全部楼层
    支持,真棒~~!
    我想用STC32做个感应加热器的控制核心,加油~!!
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 15:07
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    0

    主题

    3

    回帖

    70

    积分

    注册会员

    积分
    70
    发表于 2024-4-22 11:58:46 | 显示全部楼层
    感谢楼主分享!真的很不错
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:20
  • 签到天数: 58 天

    [LV.5]常住居民I

    1

    主题

    23

    回帖

    232

    积分

    中级会员

    积分
    232
    发表于 5 天前 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 19:43
  • 签到天数: 95 天

    [LV.6]常住居民II

    11

    主题

    133

    回帖

    1129

    积分

    荣誉版主

    积分
    1129
    发表于 3 天前 | 显示全部楼层
    Avid+ 发表于 2024-4-11 21:10
    冲哥 显示范围怎么改啊?
    128*64 iic 我直接套用你的显示函数很方便,OLED屏显示原理我都不用学了,省了 ...

    12864的驱动用在12832上,需要改动初始化OLED_Init里的两处指令:

    第一个是找到A8h指令
            OLED_WR_Byte(0xA8, OLED_CMD);//多路复用同比率设置
            OLED_WR_Byte(0x3F, OLED_CMD);
    其中0x3F表示64行,也就是12864的设置
    如果是12832显示屏,就设置成0x1F

    第二处是找到DAh指令
            OLED_WR_Byte(0xDA, OLED_CMD);//设置列引脚硬件配置
            OLED_WR_Byte(0x12, OLED_CMD);
    其中0x12是12864的设置
    如果是12832显示屏,就设置成0x02

    然后就可以像12864一样正常使用了,只不过操作时的行数,从8行变成4行,其余都一样。



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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    1

    主题

    35

    回帖

    111

    积分

    注册会员

    积分
    111
    发表于 3 天前 来自手机 | 显示全部楼层
    有机会尝试一下,先插个眼
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:20
  • 签到天数: 58 天

    [LV.5]常住居民I

    1

    主题

    23

    回帖

    232

    积分

    中级会员

    积分
    232
    发表于 前天 10:37 | 显示全部楼层
    回复 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-2 07:53 , Processed in 0.075170 second(s), 61 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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