找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 854100995
打印 上一主题 下一主题
收起左侧

0.96寸IIC12864OLED最强单片机例程,通俗易懂,方便引用

  [复制链接]
楼主
ID:88256 发表于 2020-5-22 00:19 | 显示全部楼层
下载一个看看,谢谢分享!
回复

使用道具 举报

沙发
ID:88256 发表于 2020-5-30 16:19 | 显示全部楼层
之前没有用过OLED,在淘宝下单一个0.96寸(驱动芯片:SH1106(可兼容SSD1306))的时候刚好看到这个帖子,所以干脆就不用卖家提供的测试程序而直接用这个的,OLED一次点亮,但是最后面有一、两列竖线,8页都有,本以为是程序没有处理好(故意设坑的程序也是有遇到的),但看了下程序没有问题,帖子里也没人反应有这个现象,难道是OLED生成就这样的?但很快就否定了。
上卖家页面看带图的评价里是正常的,那就肯定是程序的问题,翻看到另一个卖家里的介绍,里面的一个内容让我注意到了(就不把图片里的文字打出来了,大家自己看图),这个说得很明白,那就百度查找翻看指令,好像没有列偏移的,直接改设置坐标的程序,整行显示的正常了,显示半行的后面还有,肯定是清屏的还需要改,于是又改了全屏、清屏、初始化里的内容,这才一切正常。



之间百度指令时,设置列地址时,有的说列地址是1到128,也有的认为是0到127(针对1306驱动),有这争论是因为设置坐标子函数的最后一句 OLED_WrCmd((x&0x0f)|0x01);     对 |0x01 有人发出疑问,之前没看指令介绍时我也不理解,看了指令认为是编写错误,指令里并不要求列地址低四位里的D0必须为1,那么|0x01就是画蛇添足,也满足不了加一的目的(D0为0有效果,为1就不变),这个欢迎大家讨论一下。我是认为列地址是0到127的,先不说都是习惯地址从0开始的,就大家初始化时列地址低四位是送0x00而不是0x01就能说明问题,而且英文版里的资料也是这样写的,虽然我看不懂英文。     刚才还说到了全屏和清屏子函数,里面的是OLED_WrCmd(0x01);  也就是说列地址低四位是送0X01,而不是0X00,真有点自相矛盾啊

老眼昏花了,对于0.96寸的6*8字符都看不清了,就不对是0X00还是0X01进行验证了,一列的差别对我来说真的不容易看到,希望有人有兴趣验证一下。另外,楼主既然挂上最强的例程,先不说这几个还未定论的数据,至少程序要能选择是SH1106还是SSD1306的驱动,免得驱动不同还得改好几个地方。

再次谢谢楼主分享的程序!


评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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