找回密码
 立即注册
查看: 100|回复: 11

OLED12864和12832的疑惑

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

    [LV.3]偶尔看看II

    2

    主题

    10

    回帖

    110

    积分

    注册会员

    积分
    110
    发表于 2024-5-14 22:31:42 | 显示全部楼层 |阅读模式
    本帖最后由 karlman 于 2024-5-15 07:13 编辑

    STC8G1K17A 8pin芯片,此为手头的单片机。
    买了个OLED12832,0.91',SSD1306芯片,例程里给的是软件IIC,测试了一下显示正常。
    找了个硬件IIC的OLED12864例程,测试发现字符都被压缩压扁了一半,也就是说16点阵的汉字,变成16*8了,只显示了2、4、6、8、10、12、14、16这8行,字扁了一半。如下图
       

    看这两个例程,硬件IIC也是在软件IIC的基础上改的,对比了半天也没有找出问题所在。
    于是又买了个OLED12864,0.93',也是SSD1306芯片,测试用硬件IIC例程显示正常!


    我就觉得很奇怪了,难道这两个OLED的显存页面不一样?
    我又用OLED12832的软件IIC例程去测试OLED12864,结果显示的内容是显示一行空一行,也是只显示了2行汉字!也就是说每个汉字变成了16*32了,12864也只能显示2行汉字了。如图
    4.jpg     3.jpg

    下面把硬件例程和软件例程的OLED显示部分上传上来给大家看看,有没有哪位能帮我这个初学菜鸟找出问题所在?多谢!
    STC8G_OLED.rar (5.31 KB, 下载次数: 11) SHT31W204.rar (7.31 KB, 下载次数: 8)


    12864

    12864

    12832

    12832
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 00:17
  • 签到天数: 83 天

    [LV.6]常住居民II

    0

    主题

    222

    回帖

    538

    积分

    高级会员

    积分
    538
    发表于 2024-5-14 23:08:05 | 显示全部楼层
    疑惑在哪了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    10

    回帖

    110

    积分

    注册会员

    积分
    110
     楼主| 发表于 2024-5-14 23:26:28 | 显示全部楼层

    刚才没编辑完
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 00:17
  • 签到天数: 83 天

    [LV.6]常住居民II

    0

    主题

    222

    回帖

    538

    积分

    高级会员

    积分
    538
    发表于 2024-5-15 00:18:08 | 显示全部楼层
    OLED12832肯定比OLED12864少显示一半啊,从你的图片上看明显就是只能显示显存中0、2、4、6行,你每次换行的时候就不能用y+1了,得y+2,或者直接写0、2、4、6这四行
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    10

    回帖

    110

    积分

    注册会员

    积分
    110
     楼主| 发表于 2024-5-15 00:40:39 | 显示全部楼层
    本帖最后由 karlman 于 2024-5-15 00:52 编辑
    xxxevery 发表于 2024-5-15 00:18
    OLED12832肯定比OLED12864少显示一半啊,从你的图片上看明显就是只能显示显存中0、2、4、6行,你每次换行的 ...

    这两个OLED用的都是SSD1306芯片啊,显存都是128*64的,只是12832只用了一半显存吧?
    我的例程都是只显示两行字符,也就是32行点阵。
    我的理解是,前一半显存不都是一样的吗?为什么显示出来不一样?
    从程序里我看不出驱动12864和12832有什么不同。
    除了一个是硬件IIC一个是软件外,写OLED屏幕的子程序几乎都是一样的,显存都是8页,每页都是8*128,也就是半行16点阵的汉字,12864用了8页(4行汉字)缓存,12832只用了前4页(2行汉字)缓存吧?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    1

    主题

    81

    回帖

    197

    积分

    注册会员

    积分
    197
    发表于 2024-5-15 08:53:12 | 显示全部楼层

    汉字扁了,只剩下一半
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    13 小时前
  • 签到天数: 85 天

    [LV.6]常住居民II

    6

    主题

    806

    回帖

    1374

    积分

    金牌会员

    积分
    1374
    发表于 2024-5-15 10:22:27 | 显示全部楼层
    这和点阵字没关系吧
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    10

    回帖

    110

    积分

    注册会员

    积分
    110
     楼主| 发表于 2024-5-15 11:04:29 | 显示全部楼层
    soma 发表于 2024-5-15 10:22
    这和点阵字没关系吧

    测试时我只是换了个屏,没有动程序。点阵OLEDFONT.H用的是同一个文件。我现在只能是猜想12832并不是简单的只用了12864的前一半显存,点阵和显存的对应关系不对。但是我没有从程序中找出不同。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 00:17
  • 签到天数: 83 天

    [LV.6]常住居民II

    0

    主题

    222

    回帖

    538

    积分

    高级会员

    积分
    538
    发表于 2024-5-15 12:30:05 | 显示全部楼层
    以前还真没玩过12832的屏,都是玩12864的屏。又研究了一下,我觉得应该是oled屏初始化里设置的问题了,你试试把oled12832屏可以正常运行的程序中的OLED_Init(void)函数中
       OLED_WR_Byte(0xa8,OLED_CMD);//设置驱动路数
       OLED_WR_Byte(0x1f,OLED_CMD);
    之中的0x1f改为0x3f,编译后看12864的屏显示是否正常了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    10

    回帖

    110

    积分

    注册会员

    积分
    110
     楼主| 发表于 2024-5-15 16:00:56 | 显示全部楼层
    本帖最后由 karlman 于 2024-5-15 18:47 编辑
    xxxevery 发表于 2024-5-15 12:30
    以前还真没玩过12832的屏,都是玩12864的屏。又研究了一下,我觉得应该是oled屏初始化里设置的问题了,你试 ...

    我的目的是用硬件IIC驱动12832的屏,所以我去把左边的这个12864硬件IIC程序的0x3f改成了0x1f,显示结果还是扁字,但是向下移动了一行(16点)
    换成12864的话,是正常显示但是向下移动了两行(32点)。


    感觉确实很可能是初始化的参数不对,但两个程序的OLED初始化代码相差比较大,软件IIC的代码还没有详细注释,不知道每个参数是什么意思。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-29 20:09 , Processed in 0.069581 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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