我自己还有一个oled屏幕,想用这块开发板驱动起来。这个oled是ssd1306,提供i2c和spi两种接口。
OLED,即有机发光二极管( Organic Light Emitting Diode )。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用威廉希尔官方网站
。
SSD1306常见驱动命令:
1、设置屏幕显示开启与关闭(AEH / AFH)
AEH 关闭屏幕
AFH 开启屏幕
2、设置GDDRAM寻址模式(20H + A[1:0])
00H 水平寻址
01H 垂直寻址
02H 页寻址
3、设置起始页地址(B0H ~ B7H)
B0H-B7H 分别设置起始页为 0-7
4、设置输出行扫描顺序(C0H / C8H)
C0H 显示上下颠倒
C8H 正常
5、设置输出列扫描顺序(A0H / A1H)
A0H 显示左右颠倒
A1H 正常
6、设置颜色显示方式(A0H / A1H)
A7H 反相显示
A6H 正常显示
7、设置起始行地址(40H / 7FH)
40H 设置显示起始行地址为第0行
7FH 设置显示起始行地址为第63行
8、设置全屏全亮(A4H / A5H)
A4H 设置显示模式为正常模式,此时屏幕输出GDDRAM中的显示数据
A5H 设置显示模式为全亮模式,此时屏幕无视GDDRAM中的数据,并点亮全屏
9、设置Vcomh电压(DBH + A[6:4])
00H ~0.65 x VCC
20H ~0.77 x VCC (RESET)
30H ~0.83 x VCC (RESET)
10、设置COM引脚硬件配置(DAH + A[5:4])
首先是硬件接线,手头的oled屏幕需要按照spi的接口来接,其中D0作为spi的clk脚,D1作为spi的mosi脚,rst作为复位脚,dc是命令和数据选择脚。连接好后的接线如图:

之后就可以操作屏幕了,首先是各个接口的引脚初始化,程序如图:

向屏幕写数据和写命令的程序如下:


在屏幕上显示汉字的程序如下:

最后在主函数里实现了每隔一秒显示一行不同的汉字功能,主函数:

效果见下图和视频。

经过这次的调试,我又熟悉了芯源单片机的spi接口,也增加了编程的经验,感谢平台提供的试用机会。
|