一款基于ssd1306驱动的12864屏简介
来源:互联网 发布:octane render mac 编辑:程序博客网 时间:2024/06/08 20:04
最近在淘宝上找到了一款便宜的12864 OLED屏,阅读了相关的数据手册后整理了一些关于这种屏的资料,方便大家写驱动
硬件结构
这款屏幕模块尺寸约为0.96英寸,主要由裸屏和底板PCB组成,裸屏由SSD1306驱动,这也是一种较为广泛使用的led驱动芯片。
关于这个模块要注意的是:
- ssd1306本身支持多种总线驱动方式包括SPI以及并口等,通过芯片的相应IO口拉低拉高来选择哪一种接口,本例中模块通过电阻将相应IO口配置固化使用了I2C接口方式,但可能你买到的同样的驱动芯片的模块会采用其他接口
- 使用I2C接口时,SSD1306允许有最多两个7位的I2C地址,同样通过相应的IO口拉低拉高来切换,一般默认是0x3c,在屏幕模块的背面,可以看到一个I2C地址切换提示,需要改变模块I2C地址时,只需要把提示位置的电阻取下焊接到另外一端即可。要注意的是版上的I2C地址是加上了第零位读写位后的数值,即
0x78 = 0x3c<<1
0x7A = 0x3d<<1
基本测试
了解基本驱动指令后便可以开始C驱动程序了,不过这里推荐使用arduino的一个屏幕驱动库u8g2
来进行测试,会非常方便,下面程序用于显示“hello world”。
//"hello world" test#include <U8g2lib.h>U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);void setup(void) { u8g2.begin();}void loop(void) { u8g2.clearBuffer(); // clear the internal memory u8g2.setFont(u8g2_font_ncenB14_tr); // choose a suitable font u8g2.drawStr(0,20,"Hello World!"); // write something to the internal memory u8g2.sendBuffer(); // transfer internal memory to the display delay(1000); }
显示效果如图
除了字符外,也可以用于显示动态图形:
u8g2
是一个非常强大的8位屏幕显示库,支持非常多的驱动芯片种类,可以选择多种字体、同时字体可灵活调整长宽大小以及角度,也可以实现比较复杂的图形动态显示,关于它的安装、使用说明请看我的另外一篇博客(待完成:~)
0 0
- 一款基于ssd1306驱动的12864屏简介
- ESP8266基于microPython的OLED(SSD1306)驱动程序
- SSD1306 OLED 驱动
- Arduino驱动SSD1306 OLED
- stm32 ssD1306 OLED驱动架构
- UEStudio '06-一款基于IDE的代码编辑器_简介
- OpenWrt驱动OLED(SSD1306)过程记录
- Intel Edison arduino代码驱动OLED(SSD1306)
- Jasmine-基于JavaScript的行为驱动单元测试框架简介
- dm3730平台oled显示时钟——ssd1306驱动
- dm3730平台oled显示时钟——ssd1306驱动
- OLED(128*64)SSD1306驱动学习总结
- 【单片机笔记】OLED控制器SSD1306及驱动代码
- 一款基于js的幻灯图片代码
- 一款基于云存储的笔记软件
- 一款基于html5的图表插件
- 一款基于android的运动辅助软件
- 一款基于Material Desgin设计的APP
- 节点门面和自定义事件研究
- 转发——谷歌云官方:一小时掌握深度学习和 TensorFlow
- 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
- WIN7不能被远程桌面问题
- JavaSE_13th_对象转型(casting)
- 一款基于ssd1306驱动的12864屏简介
- Buff系统
- iOS 不规则的ImageView
- sqlserver连接oracle数据库
- 【设计模式】【十一】策略模式
- pytest学习笔记
- GT9XX触摸屏双击唤醒功能分析
- Swift 闭包
- CART-分类回归树