树莓派使用java控制ssd1306驱动12832

网上找了下12864和12832的区别,仅找到一篇内容理想些的:《用12864程序驱动12832(SSD1306)》

以上链接中明确指出:

12832的row0,row1,row2......row31分别对应12864的row0,row2,row4......row62

相当于12832展示的为12864的偶数行,可是我将内容映射到偶数行上的时候(奇数行无数据,将原来奇数行的数据也放到偶数行上进行展示),结果啥都不展示。

然后我试了一下将所有内容映射到奇数行(偶数行无数据,将原来偶数行的数据放到奇数行上进行展示),xx,结果正常展示了。相当于以上链接给出的结论可能有问题(也可能是我oled初始化的时候做了什么手脚,如果大家有了解的请不吝赐教),我实验得出的结论应该是:

12832的row0,row1,row2......row31分别对应12864的row1,row3,row5......row63

驱动oled的代码仍然参考我的上一篇内容:

《树莓派使用java控制ssd1306驱动12864》

所要做的只是将原来12864的所有内容映射到奇数行,改动点:

原来github的驱动代码为:Font.java

for (int j = 0; j < height; ++j) {
	if ((line & 0x01) > 0) {
		display.setPixel(x + i, y + j, on);
	}
	line >>= 1;
}

改动为:

for (int j = 0; j < height * 2; j += 2) {
	if ((line & 0x01) > 0) {
		display.setPixel(x + i, 1 + 2 * y + j, on);
	}
	line >>= 1;
}

Maven打包好工程之后,丢jar包到树莓派上,运行jar包:

java -jar oled-0.0.1-SNAPSHOT.jar

即可看到12832上正常展示了。

另:

我的改动方式是将所有内容迁移到奇数行上进行展示,而《用12864程序驱动12832(SSD1306)》   中提到,12864的展示切换到12832上,只需要修改ssd1306将数据映射在屏幕上的方式,只涉及到三个命令。这3个命令我还没试过,而且链接中讲的也比较模糊,稍后我试下这种方法,没准比我这种方式更好用灵活~

欢迎讨论~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值